1. #1
    Futur Membre du Club
    Homme Profil pro
    étudiant
    Inscrit en
    août 2014
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 26
    Localisation : Cameroun

    Informations professionnelles :
    Activité : étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : août 2014
    Messages : 11
    Points : 9
    Points
    9

    Par défaut Insertion de données dans une base sql server

    Bonjour à vous! c'est ma première fois de poster.
    Je travail sur une application de gestion de stock; j'essaie d'enregistrer un client qui passe une commande dans la table commande mais j'ai toujours l'erreur suivant en image.

    Nom : vb.PNG
Affichages : 92
Taille : 6,3 Ko
    Je ne parviens pas trouver l'erreur dans 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
    Sub saveCmdClient(ByVal idClient As Integer, ByVal dateJour As Date)
            connexion = New SqlConnection(chaine)
     
            Dim req As String = "insert into Commande(IdClient, DateCmd) values('" & idClient & "," & dateJour & "')"
            Try
     
                connexion.Open()
                cmd = New SqlCommand(req)
                cmd.Connection = connexion
                cmd.CommandType = CommandType.Text
                cmd.CommandText = req
                Dim res As Integer = cmd.ExecuteNonQuery
                If res > 0 Then
                    MsgBox("Enregistrer ", MsgBoxStyle.Information, "Rapport")
     
     
                Else
                    MsgBox("Pas Enregistrer", MsgBoxStyle.Exclamation, "Rapport")
     
     
                End If
                'fermeture de la connexion
                connexion.Close()
     
            Catch ex As Exception
                MsgBox(ex.Message, MsgBoxStyle.Exclamation, "Rapport")
            End Try
     
        End Sub
    Merci de m'aider!

  2. #2
    Membre expert Avatar de jopopmk
    Homme Profil pro
    Développeur informatique
    Inscrit en
    mars 2011
    Messages
    1 830
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : mars 2011
    Messages : 1 830
    Points : 3 427
    Points
    3 427

    Par défaut

    Ah ! Les super requêtes concat ...

    Bon, ton souci est très simple : ta concat' est ratée. Tu ouvres la quote avant ta première concat', et tu la refermes uniquement après la deuxième. Du coup l'interpréteur ne voit qu'un champ (qui contient une virgule) dans les VALUES.
    Tu devrais avoir un truc du genre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Dim req As String = "insert into Commande(IdClient, DateCmd) values('" & idClient & "' ,'" & dateJour & "')"
    Enfin bon, avec une requête paramétrée tu n'aurais pas eu ce souci ...
    Plus je connais de langages, plus j'aime le C.

  3. #3
    Futur Membre du Club
    Homme Profil pro
    étudiant
    Inscrit en
    août 2014
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 26
    Localisation : Cameroun

    Informations professionnelles :
    Activité : étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : août 2014
    Messages : 11
    Points : 9
    Points
    9

    Par défaut

    Merci bien, je n'avais pas vue celle. Et concernant les requettes preparer je ne sais pas encore bien les faire. si vous avez un tutotiel à me proposer à ce sujet surtout avec sqlsrver et access,
    je serai ravis Encore merci

  4. #4
    Membre expert Avatar de jopopmk
    Homme Profil pro
    Développeur informatique
    Inscrit en
    mars 2011
    Messages
    1 830
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : mars 2011
    Messages : 1 830
    Points : 3 427
    Points
    3 427

    Par défaut

    Re,

    tu as regardé dans les tutoriels SQL proposés sur ce site ?
    S'il n'y en a pas (ce dont je doute TRES fortement) je te mettrais un petit exemple ici.
    Les requêtes paramétrées ont plusieurs avantages, au-delà d'éviter certaines erreur de concat'.
    Notamment elles protègent contre l'injection SQL et gèrent le typage.
    Plus je connais de langages, plus j'aime le C.

  5. #5
    Membre averti Avatar de thierry007
    Homme Profil pro
    Autodidacte
    Inscrit en
    août 2006
    Messages
    832
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Autodidacte
    Secteur : Industrie

    Informations forums :
    Inscription : août 2006
    Messages : 832
    Points : 428
    Points
    428

    Par défaut

    Au début j'étais comme ceci aussi
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     Dim req As String = "insert into Commande(IdClient, DateCmd) values('" & idClient & ",'" & dateJour & "')"
    Mais les requêtes paramétrées sont plus efficaces, plus facile a débogué, et évitent les problèmes d'injection et autre comme dis par jopopmk
    Elles ne présentent que des avantages

    Ne pas oublier l'import de 'System.Data.SqlClient'

    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
     
     Dim My_Commande As SqlCommand
          Dim My_requete As String
          Dim My_ConnexionSQL As SqlConnection
     
     'Initialise une connexion à la DB SQL
                My_ConnexionSQL = New SqlConnection(MaChaineDeConnexion)
     
    'Requête 
     My_requete = "INSERT INTO MyDB (Id,Name1, Name2) VALUES (@Id,@Name1,@Name2)"
     
      My_Commande = New SqlCommand(My_requete, My_ConnexionSQL)
     
                      With My_Commande.Parameters
     
                            .Add(New SqlParameter("@Id", SqlDbType.Int))
                            .Add(New SqlParameter("@Name1", SqlDbType.NVarChar, 65))
                            .Add(New SqlParameter("@Login2", SqlDbType.NVarChar, 65))
     
                      End With
     
                      With My_Commande
     
                            .Parameters("@Id").Value = CInt(NumeroId)
                            .Parameters("@Name").Value = CStr(TxtNom1.Text.Trim)
                            .Parameters("@Login").Value = CStr(TxtNom2.Text.Trim)
     
                      End With
     
                      Try
                            My_Commande.Connection.Open()
                            My_Commande.ExecuteNonQuery()
                            My_Commande.Connection.Close()
      Catch ex As Exception
     
    'Catch des erreur et message , genre:  
    MsgBox(ex.Message.ToString)
     
      End Try
    j'espère t'avoir aidé un peut
    Bonne journée
    La Connaissance est comme la joie elle s'accroît en la partageant!

  6. #6
    Futur Membre du Club
    Homme Profil pro
    étudiant
    Inscrit en
    août 2014
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 26
    Localisation : Cameroun

    Informations professionnelles :
    Activité : étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : août 2014
    Messages : 11
    Points : 9
    Points
    9

    Par défaut

    Merci pour votre aide. J'ai peu me retrouver.

Discussions similaires

  1. [Débutant] Enregistrer des données dans une base sql server CE
    Par hugnka dans le forum VB.NET
    Réponses: 11
    Dernier message: 18/12/2012, 16h47
  2. Réponses: 4
    Dernier message: 20/07/2010, 00h43
  3. Réponses: 1
    Dernier message: 17/09/2008, 14h40
  4. vb.net et insertion de donnée dans une base sql plus
    Par anissabosch dans le forum VB.NET
    Réponses: 4
    Dernier message: 18/10/2007, 20h39
  5. Réponses: 4
    Dernier message: 09/07/2007, 13h03

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