Pb requete sql

cs_mickael56100 Messages postés 94 Date d'inscription vendredi 12 septembre 2008 Statut Membre Dernière intervention 19 mai 2012 - 26 janv. 2009 à 11:01
nhervagault Messages postés 6063 Date d'inscription dimanche 13 avril 2003 Statut Membre Dernière intervention 15 juillet 2011 - 27 janv. 2009 à 11:45
Bonjour tout le monde, je rencontre un petit soucis actuellement dans une requête sql, en fait jaimerais inséré une valeeur qui évolue en fonction de ce qui est coché ou pas.

Voila un extrait du code (en bleu ce que j'aimerais ajouté dans ma requete)

Private Sub B_Ajouter_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles B_Ajouter.Click
        If T_Nom.Text = "" Then
            MsgBox("Vous devez mentionner le nom de cet étudiant", vbOKOnly, "Attention")
        Else
            Dim Sexe As String
            If RB_SexeH.Checked = True Then
                Sexe = "H"
            ElseIf RB_Sexe2.Checked = True Then
                Sexe = "F"
            End If
        'Insertion dans la base de données des informations concernant les contacts
        Dim reqinsertetudiant As String
            reqinsertetudiant = "INSERT INTO Eleve (CodeEleve,NomEleve,PrenomEleve,SexeEleve,DateNaissEleve,TelEleve,CourielEleve,AdresseEleve,CodePostalEleve,VilleEleve,CodeClasse) VALUES ('" & T_Code.Text & "', '" & T_Nom.Text & "', '" & T_Prenom.Text & "'," & Sexe & ", '" & DT_DateNaiss.Text & "', '" & T_Fixe.Text & "', '" & T_Mobile.Text & "', '" & T_Email.Text & "', '" & T_Adresse.Text & "','" & T_CodePostal.Text & "','" & T_Ville.Text & "')"
            Dim dt4 As DataTable
            dt4 = F_Menu.ReqSelection(reqinsertetudiant, "Eleve")
        MsgBox("L'étudiant a été correctement ajouté", vbOKOnly, "Message de Confirmation")
        T_Code.Text = T_Code.Text + 1
        C_Classe.SelectedIndex = 0
        C_Promo.SelectedIndex = 0
        T_Nom.Text = ""
        T_Prenom.Text = ""
        T_Email.Text = ""
        T_Fixe.Text = ""
        T_Mobile.Text = ""
        T_Adresse.Text = ""
        T_CodePostal.Text = ""
        T_Ville.Text = ""
        End If
    End Sub

5 réponses

cs_mickael56100 Messages postés 94 Date d'inscription vendredi 12 septembre 2008 Statut Membre Dernière intervention 19 mai 2012
26 janv. 2009 à 11:10
Private Sub B_Ajouter_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles B_Ajouter.Click
        If T_Nom.Text = "" Then
            MsgBox("Vous devez mentionner le nom de cet étudiant", vbOKOnly, "Attention")
        Else
            Dim Sexe As String
            If RB_SexeH.Checked = True Then
                Sexe = "H"
            ElseIf RB_Sexe2.Checked = True Then
                Sexe = "F"
            End If
        'Insertion dans la base de données des informations concernant les contacts
        Dim reqinsertetudiant As String
           
reqinsertetudiant = "INSERT INTO Eleve
(CodeEleve,NomEleve,PrenomEleve,SexeEleve,DateNaissEleve,TelEleve,CourielEleve,AdresseEleve,CodePostalEleve,VilleEleve)
VALUES ('" & T_Code.Text & "', '" & T_Nom.Text & "', '"
& T_Prenom.Text & "'," & Sexe & ",
'" & DT_DateNaiss.Text & "', '" & T_Fixe.Text & "', '"
& T_Mobile.Text & "', '" & T_Email.Text & "', '" &
T_Adresse.Text & "','" & T_CodePostal.Text & "','" &
T_Ville.Text & "')"
            Dim dt4 As DataTable
            dt4 = F_Menu.ReqSelection(reqinsertetudiant, "Eleve")
        MsgBox("L'étudiant a été correctement ajouté", vbOKOnly, "Message de Confirmation")
        T_Code.Text = T_Code.Text + 1
        C_Classe.SelectedIndex = 0
        C_Promo.SelectedIndex = 0
        T_Nom.Text = ""
        T_Prenom.Text = ""
        T_Email.Text = ""
        T_Fixe.Text = ""
        T_Mobile.Text = ""
        T_Adresse.Text = ""
        T_CodePostal.Text = ""
        T_Ville.Text = ""
        End If
    End Sub
0
NHenry Messages postés 15115 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 8 mai 2024 159
26 janv. 2009 à 11:22
Bonjour,

"jaimerais inséré une valeeur qui évolue en fonction de ce qui est coché ou pas"
Et en clair (et avec moins de fautes de français) ?

C'est ça que tu veux ?
            Dim Sexe As String
            If RB_SexeH.Checked = True Then
                Sexe = 1
            ElseIf RB_Sexe2.Checked = True Then
                Sexe = 2
            End If

http://nhen0039.chez-alice.fr/index.php
0
nhervagault Messages postés 6063 Date d'inscription dimanche 13 avril 2003 Statut Membre Dernière intervention 15 juillet 2011 37
26 janv. 2009 à 16:44
Salut

Je tenterais
& "','" & Sexe & "', '" &

Il manque les guillements dans le cas d'une chaine de caractères.

Avec l'utilisation des requetes paramétrées, ce probleme ne se serait pas posé et la sécurité aurait été plus élevée.

Bon Dev
0
cs_mickael56100 Messages postés 94 Date d'inscription vendredi 12 septembre 2008 Statut Membre Dernière intervention 19 mai 2012
27 janv. 2009 à 11:33
j'ai modifié la requête, cela fonctionne désormais enfin même si cela m'affiche un message d'avertissement.

Voilà ma requête :

reqinsertetudiant = "INSERT INTO Eleve (CodeEleve,NomEleve,PrenomEleve,SexeEleve,DateNaissEleve,TelFixeEleve,TelMobileEleve,CourielEleve,AdresseEleve,CodePostalEleve,VilleEleve) VALUES ('" & T_Code.Text & "', '" & T_Nom.Text & "', '" & T_Prenom.Text & "','" & Sexe.ToString & "', '" & DT_DateNaiss.Text & "', '" & T_Fixe.Text & "', '" & T_Mobile.Text & "', '" & T_Email.Text & "', '" & T_Adresse.Text & "','" & T_CodePostal.Text & "','" & T_Ville.Text & "')"

L'avertissement est le suivant :

La variable 'Sexe' est utilisée avant qu'une valeur ne lui ait été assignée. Une exception de référence null peut se produire au moment de l'exécution.   
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
nhervagault Messages postés 6063 Date d'inscription dimanche 13 avril 2003 Statut Membre Dernière intervention 15 juillet 2011 37
27 janv. 2009 à 11:45
     If RB_SexeH.Checked = True Then
                Sexe = "H"
            ElseIf RB_Sexe2.Checked = True Then
                Sexe = "F"
            End If






C'est que il y a rien de checké??
donc Sexe = ""

il faut revoir ton test ou ta validation
0
Rejoignez-nous