IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VB.NET Discussion :

Initialiser un textbox à partir d'une base de données


Sujet :

VB.NET

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    38
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 38
    Par défaut Initialiser un textbox à partir d'une base de données
    Bonjour.

    je suis débutant et voici ma problématique.

    1. j'ai une table qui contient 4 colonnes.
    Colonne 1 contient une chaîne de valeurs (ex: Lisandro;LOPEZ;MaPhoto.GIF)
    Colonne 2 est vide
    Colonne 3 est vide
    Colonne 4 est vide
    2. j'ai une page ASPX qui contient 3 textbox et espace "Image":

    Voici ce que je souhaiterais faire (sans y arriver bien sur ):
    - Au chargement de ma page, initialiser ma textbox1 avec la 1ière partie de la colonne 1 ("lisandro")
    - Au chargement de ma page, initialiser ma textbox2 avec la 2nde partie de la colonne 1 ("LOPEZ")
    - Au chargement de ma page, initialiser la zone "Image" avec la photo, 3ième partie de la colonne 1 (affichage de la photo "MaPhoto.gif")

    Puis

    - je modifie textbox1 (nouvelle valeur = "Lisandra")
    - je modifie textbox2 (nouvelle valeur = "LAPERE")
    - je clique sur un bouton "Valider"
    ==> et ma colonne 2 se remplit avec la valeur de TextBox1 (Lisandra)
    ==> et ma colonne 3 se remplit avec la valeur de TextBox2 (LAPERE)
    ==> ma page se recharge avec les valeurs de l'enregistrement suivante de ma base.

    Merci beaucoup !!

  2. #2
    Inactif  
    Homme Profil pro
    Inscrit en
    Septembre 2003
    Messages
    570
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Septembre 2003
    Messages : 570
    Par défaut
    Citation Envoyé par yellowsub122 Voir le message
    Colonne 1 contient une chaîne de valeurs (ex: Lisandro;LOPEZ;MaPhoto.GIF)
    ...

    Voici ce que je souhaiterais faire (sans y arriver bien sur ):
    - Au chargement de ma page, initialiser ma textbox1 avec la 1ière partie de la colonne 1 ("lisandro")
    - Au chargement de ma page, initialiser ma textbox2 avec la 2nde partie de la colonne 1 ("LOPEZ")
    - Au chargement de ma page, initialiser la zone "Image" avec la photo, 3ième partie de la colonne 1 (affichage de la photo "MaPhoto.gif")
    ....
    si j'ai bien compris tu n'arrive pas à extraire les differentes partis de ton champs, si c'est cela essai avec queqlue chose qui ressemble à :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    //je suppose que col1 est le champs récupéré de ta bd
    Dim parties As String() = col1.Split(New Char() {";"c})
     
    textbox1.text=parties(0)
    textbox2.text=parties(1)
    Image.imageurl=parties(2)

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    38
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 38
    Par défaut
    Tout d'abord, merci pour ta réponse rapide.

    Comme je début complètement, je vais avoir besoin de plus d'explication si tu veux bien.


    Citation Envoyé par nsanabi Voir le message
    si j'ai bien compris tu n'arrives pas à extraire les differentes partis de ton champs, si c'est cela essai avec quelque chose qui ressemble à :
    Déjà, je ne suis pas certain de bien récupérer le contenu de ma colonne 1.
    En effet, actuellement, j'utilise un contrôle "formview" pour afficher le contenu de ma colonne 1 (soit "lisandro;LOPEZ;MaPhoto.gif") sur ma page.
    Et d'une, je ne veux pas afficher ce contenu sur la page mais seulement exploiter.
    Deux, une fois ce contenu affiché, je ne sais pas comment extraire (split) ce contenu pour mettre chaque "morceau" dans chacun des champs "texte"... malgré ton aide.

    Merci pour ton aide.

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    38
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 38
    Par défaut
    Voici ce que j'ai fait jusqu'à maintenant

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Sub page_load()
            Dim VarChaineTextBox5 As String
            TextBox5.Text = "toto;titi;~/Images/logo.jpg"
            VarChaineTextBox5 = TextBox5.Text
            Dim table() As String = VarChaineTextBox5.Split(Char.Parse(";"))
            TextBox6.Text = table(0)
            TextBox7.Text = table(1)
            Image.Image1 = table(2)
        End Sub
    j'ai une erreur sur Image.Image1 :
    'Image1' n'est pas un membre de 'System.Web.UI.WebControls.Image'.
    Et en plus ici, j'ai mis "toto;titi;~/Images/logo.gif" en "dur", dans un textbox (textbox5) alors qu'en réalité, je souhaiterais:
    1. ne pas devoir à afficher "toto;titi;~/Images/logo.gif" sur ma page.
    2. mais de récupérer la valeur "toto;titi;~images/logo.gif" dans ma table, colonne 1.

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    38
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 38
    Par défaut
    J'avance.

    voici la dernière modif que j'ai faite:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Sub page_load()
            Dim VarChaineTextBox5 As String
            Dim VarImageURL As String
            TextBox5.Text = "toto;titi;~/Images/logo.jpg"
            VarChaineTextBox5 = TextBox5.Text
            Dim table() As String = VarChaineTextBox5.Split(Char.Parse(";"))
            TextBox6.Text = table(0)
            TextBox7.Text = table(1)
            VarImageURL = table(2)
            Image1.ImageUrl = VarImageURL
        End Sub
    J'ai maintenant:
    textbox6 initialisé à "titi"
    textbox7 initialisé à "toto"
    Image qui affiche bien le logo.

    Reste maintenant comment récupéré "titi;toto;~/Images/logo.jpg" à partir de ma table MATABLE, colonne 1....

    Là, je sèche.

  6. #6
    Inactif  
    Homme Profil pro
    Inscrit en
    Septembre 2003
    Messages
    570
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Septembre 2003
    Messages : 570
    Par défaut
    content de voir qu'il y a des gens qui font des efforts. Certes il va falloir un peu plus.
    actuellement, j'utilise un contrôle "formview" pour afficher le contenu de ma colonne 1 (soit "lisandro;LOPEZ;MaPhoto.gif") sur ma page.
    - tu sais créer une connexion vers ta base de données
    - tu sais créer une source de donnée, je suppose ici que c'est SqlDataSource (il est possible d'utiliser un linqdatasource que je te conseil pour plus tard ou un objectdatasource si tu possède une couche DAL). (ne pas oublier de cochez Générer des instructions INSERT, UPDATE et DELETE )
    - tu sais créer un formview et le lier à ta source de données

    si tu réussi à faire cela c'est déjà une bon point de départ :
    je suppose que sur ton formview tu affiche le contenue de ta colonne1.
    tu peut faire appel à l'évènement databound du formview, qui surviens une foi toutes les données sont récupérées de ta source vers les contrôles du formulaire, et là tu met
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    Protected Sub FormView1_DataBound(ByVal sender As Object, ByVal e As System.EventArgs) Handles FormView1.DataBound
    dim varcol1 as string
     
    varcol1=CType(FormView1.DataItem, DataRowView).Item(0)
            'en supposant que la colonne1 est ton premier champs de la table, sinon changer l'index dans item
            'maintenant tu possède dynamiquement le contenu récupéré depuis ta base de données 
    Dim table() As String = varcol1.Split(Char.Parse(";"))
    ....
    end sub

  7. #7
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    38
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 38
    Par défaut
    Bonjour nsanabi.

    ça marche !! hihihihihihi merci à toi

    La suite maintenant (eh oui, ça marche mais pas tout à fait )

    Le pb est le suivant:
    Ma formview n'affiche que le 1er enregistrement de ma table.
    Je souhaiterais donc mettre un bouton ds ma page qui fait 2 choses:
    1. faire une update de ma table avec les valeurs saisies dans les textbox (bon, ça, je saurai faire)
    2. passer à l'enregistrement suivant (ça par contre, j'ai besoin d'aide).

    je cherche en // à ce post of course...

    Note: bien sur, je ne veux pas activer la pagination sur ma FormView car je voudrais que les actions "update" et "passage à l'enregistrement" suivant soient exécutées "en même temps" (update d'abord puis passer au suivant ensuite).

    Autre soucis aussi: je ne veux pas afficher ma formview MAIS si je mets False à la propriété "Visible" de ma formview, il n'y plus rien dans mes textbox !! (plus de valeur à l'initialisation). Arf.
    Comment ne pas afficher ce foutu truc.

    Merci

  8. #8
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    38
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 38
    Par défaut
    J'avance j'avance (à très petit pas).

    j'ai donc mis le bouton (Button3).
    Dans la requête "Update", si j'essaye d'écrire where total like '" & VarCol1 & '"
    en ayant pris soin de déclarer VarCol1 puis en initialisant VarCol1
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    varcol1 = CType(FormView1.DataItem, DataRowView).Item(0)
    ==> Echec:
    System.NullReferenceException: La référence d'objet n'est pas définie à une instance d'un objet
    je pense que c'est normal car la procédure Sub Button3_Click ne connaît pas FormView1.
    (Ai-je raison ?)
    Dans ce cas, comment faire svp ?


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
        Protected Sub Button3_Click(ByVal sender As Object, ByVal e As System.EventArgs)
            Dim VarValeurTextBox8 As String
            Dim VarValeurTextBox9 As String
            'Dim varcol1 As String
            
            VarValeurTextBox8 = TextBox8.Text()
            VarValeurTextBox9 = TextBox9.Text()
            'varcol1 = CType(FormView1.DataItem, DataRowView).Item(0)
            'MsgBox(varcol1)
            'Chaîne de connexion
            Dim connectString As String = "Data Source=.\MonInstance;Initial Catalog=Database1;User ID=sa;Password=essilor"
            'Objet connection
            Dim connection As SqlConnection = New SqlConnection(connectString)
            'Ouverture
            connection.Open()
            'Objet Command
            Dim command As SqlCommand = New SqlCommand("UPDATE Utilisateur set Prenom = '" & VarValeurTextBox8 & "', Nom='" & VarValeurTextBox9 & "' where Total like 'titi;TOTO;2;~/Images/logo.jpg'", connection)
            'Execution
            Dim affectedrows As Integer = command.ExecuteNonQuery()
            Console.WriteLine("Nombre de lignes affectées {0}", affectedrows)
            'Fermeture connection
            connection.Close()
    End Sub

  9. #9
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    38
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 38
    Par défaut
    Bon. j'ai trouvé une façon de ne pas afficher ma formview dans ma page.
    Simplement en mettant un
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <Div style="display:none">
    <asp:FormView ID="FormView1" runat="server"      DataSourceID="SqlDataSource2">
    ...
    </asp:FormView>
    </Div>
    je ne sais pas si c'est une bonne façon de faire mais bon, pour l'instant, ça marche.

    MAIS j'ai maintenant 1 autre pb (2 avec l'histoire du bouton... le bouton qui fait passer à l'enregistrement suivant).

    Voici le nouveau problème:
    jusqu'à maintenant, j'avais testé sur une fausse table contenant des données bidons.
    Là, je teste sur une table qui ressemble à la réalité.
    La vraie colonne1 des données qui ressemblen à ceci:
    <Field><Name>PRENOM</Name><DBName>Colonne2</DBName><Null>False</Null><InitialValue>Titi</InitialValue><Value>Titi</Value></Field><Field><Name>NOM</Name><DBName>Colonne3</DBName><Null>False</Null><InitialValue>TOTO</InitialValue><Value>TOTO</Value></Field>

    Et si je fais en sorte que ma FormView pointe vers la "vraie" table, et la "vraie colonne", alors, le résultat supprime toutes les balises <...> et </...>.
    Je me retrouve donc avec une succession de caractères sans séparateur !!
    (Résultat obtenu: PRENOMColonne2FalseTitiTitiNOMColonne3FalseTOTOTOTO)

    NON !!!!!!!!!!!!!!!

  10. #10
    Membre Expert
    Avatar de Nicolas Esprit
    Homme Profil pro
    Consultant en technologies
    Inscrit en
    Février 2010
    Messages
    1 467
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France

    Informations professionnelles :
    Activité : Consultant en technologies
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2010
    Messages : 1 467
    Par défaut
    Bonjour,

    C'est normal, par défaut les caractères de ce type sont retirés. Regarde du côté de HtmlEncode pour désactiver cela.

    En espérant t'avoir aidé.

  11. #11
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    38
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 38
    Par défaut
    Citation Envoyé par Nicolas Esprit Voir le message
    Bonjour,

    C'est normal, par défaut les caractères de ce type sont retirés. Regarde du côté de HtmlEncode pour désactiver cela.

    En espérant t'avoir aidé.

    merci. je vais essayer demain. je tiens au courant;
    D'après ma lecture, il suffit de rajouter ...

    Et pour le bouton qui fait passer à l'enregistrement suivant, peux-tu m'aider stp ? merci en tout cas.

  12. #12
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    38
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 38
    Par défaut
    Citation Envoyé par Nicolas Esprit Voir le message
    Bonjour,

    C'est normal, par défaut les caractères de ce type sont retirés. Regarde du côté de HtmlEncode pour désactiver cela.

    En espérant t'avoir aidé.
    J'ai réussi.
    Voici le code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    <asp:FormView ID="FormView2" runat="server" DataSourceID="SqlDataSource3" >
                   <ItemTemplate>
                       Extension:
                       <asp:Label ID="ExtensionLabel" runat="server" Text='<%# Server.HtmlEncode(Eval("Extension").ToString()) %>' />
                       <br />
                   </ItemTemplate>
               </asp:FormView>
    Merci encore.

  13. #13
    Membre Expert
    Avatar de Nicolas Esprit
    Homme Profil pro
    Consultant en technologies
    Inscrit en
    Février 2010
    Messages
    1 467
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France

    Informations professionnelles :
    Activité : Consultant en technologies
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2010
    Messages : 1 467
    Par défaut
    Mais de rien. Pense à marquer ton post comme Résolu.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [vb6] remplir un textbox à partir d'une base de données
    Par lumbroso dans le forum VB 6 et antérieur
    Réponses: 4
    Dernier message: 16/09/2010, 21h34
  2. [FLASH 8] Afficher des images à partir d'une base de données
    Par developpeur_mehdi dans le forum Flash
    Réponses: 9
    Dernier message: 15/03/2006, 10h43
  3. réplication à partir d'une base de données heterogène
    Par elbennaoui dans le forum Réplications
    Réponses: 1
    Dernier message: 16/11/2005, 16h05
  4. afficher une image à partir d'une base de données access
    Par zidenne dans le forum Bases de données
    Réponses: 2
    Dernier message: 08/11/2005, 11h41

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo