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 :

[VB.NET] Problème Insertion Base de données avec Variables


Sujet :

VB.NET

  1. #1
    Nouveau membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Décembre 2008
    Messages
    42
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2008
    Messages : 42
    Points : 38
    Points
    38
    Par défaut [VB.NET] Problème Insertion Base de données avec Variables
    Bonjour, Voici mon code:

    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
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
     
    Imports System.Data.OleDb
    Public Class F_AjoutSalle
     
        Public etage As Integer
        Public notype As Integer
        Public Typesalle As String
     
     
     
        Public Sub charger_liste()
            CB_TypeSalle.Items.Clear()
            Dim dt As DataTable
            dt = F_Menu.ReqSelection("SELECT LibelleTSalle FROM TypeSalle", "TypeSalle")
            If dt.Rows.Count <> 0 Then
                For i As Integer = 0 To dt.Rows.Count - 1
                    CB_TypeSalle.Items.Add(dt.Rows(i).Item(0)).ToString()
                Next
            End If
        End Sub
     
        Private Sub B_Annuler_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles B_Annuler.Click
            Me.Close()
        End Sub
     
        Private Sub RB_RezJardin_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles RB_RezJardin.CheckedChanged
            etage = "1"
            L_Etage.Text = etage 'test pour afficher numéro de l'étage
            charger_liste()
        End Sub
     
        Private Sub RB_RezChaussee_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles RB_RezChaussee.CheckedChanged
            etage = "2"
            L_Etage.Text = etage 'test pour afficher numéro de l'étage
            charger_liste()
        End Sub
     
        Private Sub RB_1er_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles RB_1er.CheckedChanged
            etage = "3"
            L_Etage.Text = etage 'test pour afficher numéro de l'étage
            charger_liste()
        End Sub
     
        Private Sub RB_2eme_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles RB_2eme.CheckedChanged
            etage = "4"
            L_Etage.Text = etage 'test pour afficher numéro de l'étage
            charger_liste()
        End Sub
     
        Private Sub RB_3eme_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles RB_3eme.CheckedChanged
            etage = "5"
            L_Etage.Text = etage 'test pour afficher numéro de l'étage
            charger_liste()
        End Sub
     
     
        Private Sub CB_TypeSalle_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CB_TypeSalle.SelectedIndexChanged
            Typesalle = CB_TypeSalle.SelectedItem.ToString
            L_typesalle.Text = Typesalle
     
            Dim dt2 As DataTable
            dt2 = F_Menu.ReqSelection("SELECT No_TypeSalle FROM TypeSalle WHERE LibelleTSalle ='" & Typesalle & "'", "TypeSalle")
            If dt2.Rows.Count <> 0 Then
                notype = dt2.Rows(0).Item(0).ToString
                L_NoTypeSalle.Text = notype
            End If
        End Sub
     
     
        Private Sub B_AjoutSalle_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles B_AjoutSalle.Click
     
     
            Dim cnx As OleDbConnection
            Dim cmd As OleDbCommand
            ' instanciation et ouverture d'une connexion
            cnx = New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data source=reparations.mdb")
            cnx.Open()
            'instanciation d'un objet Commande
            cmd = New OleDbCommand("INSERT INTO Salle (LibelleSalle, No_TypeSalle, No_Etage) VALUES ('" & T_NomSalle.Text & "', "&Typesalle&","&etage&" )")
     
            cmd.Connection() = cnx
     
            cmd.ExecuteNonQuery()
            cnx.Close()
        End Sub
    End Class
    Tout fonctionne sauf ma requête d'insertion!!! Qui est à la fin du code
    J'ai 1 table Salle dans laquelle je veux ajouter une salle!!
    Il faut donc:
    -Nom de la salle ( text box -> T_NomSalle.text) donc un string
    -Numéro de type de la chambre ( variable Typesalle) numéro
    (je récupere bien le numéro de la variable)
    -Numéro de l'étage ( variable etage) numéro
    (je récupere bien le numéro de la variable)


    Les erreurs qui sont propre à la ligne de la requête INSERT:

    Le caractère de type '&' ne correspond pas au type de données déclaré 'String'.
    Virgule, ')' ou continuation d'expression valide attendue
    Je suis bloqué là dessus!!
    Je pense que c'est une histoire de guillemets ou quelque chose dans le style!

    Merci d'avance

  2. #2
    Membre émérite Avatar de mactwist69
    Homme Profil pro
    Développement VB.NET
    Inscrit en
    Janvier 2007
    Messages
    1 707
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : Développement VB.NET
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 707
    Points : 2 528
    Points
    2 528
    Par défaut
    Il doit y avoir des espaces:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
            cmd = New OleDbCommand("INSERT INTO Salle (LibelleSalle, No_TypeSalle, No_Etage) VALUES ('" & T_NomSalle.Text & "', " & Typesalle & "," & etage & " )")
    L'avenir appartient à ceux... dont les ouvriers se lèvent tôt. (Coluche)

  3. #3
    Nouveau membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Décembre 2008
    Messages
    42
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2008
    Messages : 42
    Points : 38
    Points
    38
    Par défaut merci
    Merci je vais faire les modifs tout de suite!!!!

  4. #4
    Nouveau membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Décembre 2008
    Messages
    42
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2008
    Messages : 42
    Points : 38
    Points
    38
    Par défaut Une Erreur dans la procédure!
    Rebonjour!

    Après rectification de la requête, Il n'y a plus aucune erreur!

    Cependant, lors de l'exécution du programme, une erreur me parvient lorsque je veux exécuter la requête!

    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
     
     
            Dim cnx As OleDbConnection
            Dim cmd As OleDbCommand
            ' instanciation et ouverture d'une connexion
            cnx = New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data source=reparations.mdb")
            cnx.Open()
            'instanciation d'un objet Commande
            cmd = New OleDbCommand("INSERT INTO Salle (LibelleSalle, No_TypeSalle, No_Etage) VALUES ('" & T_NomSalle.Text & "', " & Typesalle & "," & etage & " )")
     
            cmd.Connection() = cnx
     
            MsgBox("vous avez rajout une " & cmd.ExecuteNonQuery() & " salle")
     
            cnx.Close()
    Il me marque une erreur sur le
    L'exeption OleDbException n'a pas été gérée
    Aucune valeur donnée pour un ou plusieurs des paramètres requis.
    Comment cela se fait-il??
    Merci d'avance!!

  5. #5
    Expert éminent sénior Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 154
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 154
    Points : 25 072
    Points
    25 072
    Par défaut
    quel est le type de No_TypeSalle ?
    que contient ta variable locale ? car elle est déclarée as string, et si dans la base c'est aussi le cas il faut des ' aussi

    sinon quand on fait des requetes, il faut utiliser des try catch

    il est aussi peu recommandé de concaténer des requetes, parce que si dans ton textbox on met une apostrophe ta requete ne peut pas fonctionner
    pour ca il faut utiliser des dbparameters (cmd.parameterrs.Add())
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  6. #6
    Nouveau membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Décembre 2008
    Messages
    42
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2008
    Messages : 42
    Points : 38
    Points
    38
    Par défaut No_TypeSalle et autres
    No_TypeSalle est un numéro (1, 2 , 3 ...)

    Comment utilise-t-on des try catch ainsi que des dbparameters???
    J'ai jamais entendu parler de ca!!
    Ou est-ce que je peux trouver un ou plusieurs tutos sur ca??

    merci d'avance!!

  7. #7
    Expert éminent sénior Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 154
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 154
    Points : 25 072
    Points
    25 072
    Par défaut
    en haut de cette page y a un boutons "tutoriels vb.net"

    sinon en général on conseille http://plasserre.developpez.com/cours/vb-net/
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  8. #8
    Nouveau membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Décembre 2008
    Messages
    42
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2008
    Messages : 42
    Points : 38
    Points
    38
    Par défaut probleme Résolu !
    C'est bon j'ai trouvé ce qui merdouillait!
    C'était une variable que je récupérai mal!

    bonne journée a tous!

    Et merci de votre aide précieuse!

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

Discussions similaires

  1. [MySQL] Problème pour l'insertion dans une base de données avec variables $_POST
    Par hakkio dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 30/03/2012, 17h04
  2. Réponses: 2
    Dernier message: 18/03/2010, 15h58
  3. Problème de Base de données avec Mysql
    Par Peter K. dans le forum Bases de données
    Réponses: 2
    Dernier message: 02/01/2008, 11h30
  4. Problème de base de données avec Zend exception PDO
    Par websurfeur dans le forum Zend Framework
    Réponses: 8
    Dernier message: 20/04/2007, 16h49
  5. Problème Update Base de données avec les composants ADO
    Par lingli dans le forum Bases de données
    Réponses: 5
    Dernier message: 20/04/2006, 00h41

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