Pb requete sql

Signaler
Messages postés
94
Date d'inscription
vendredi 12 septembre 2008
Statut
Membre
Dernière intervention
19 mai 2012
-
Messages postés
6063
Date d'inscription
dimanche 13 avril 2003
Statut
Modérateur
Dernière intervention
15 juillet 2011
-
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

Messages postés
94
Date d'inscription
vendredi 12 septembre 2008
Statut
Membre
Dernière intervention
19 mai 2012

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
Messages postés
14828
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
18 novembre 2021
157
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
Messages postés
6063
Date d'inscription
dimanche 13 avril 2003
Statut
Modérateur
Dernière intervention
15 juillet 2011
36
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
Messages postés
94
Date d'inscription
vendredi 12 septembre 2008
Statut
Membre
Dernière intervention
19 mai 2012

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.   
Messages postés
6063
Date d'inscription
dimanche 13 avril 2003
Statut
Modérateur
Dernière intervention
15 juillet 2011
36
     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