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 :

Enregistrement des données dans la DataGridview sql server et vb.net


Sujet :

VB.NET

  1. #1
    Membre régulier
    Homme Profil pro
    ETUDE
    Inscrit en
    Septembre 2016
    Messages
    360
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cameroun

    Informations professionnelles :
    Activité : ETUDE
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Septembre 2016
    Messages : 360
    Points : 117
    Points
    117
    Par défaut Enregistrement des données dans la DataGridview sql server et vb.net
    Salut à tous j'ai se bout de 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
      Dim connetionString As String
            Dim connection As SqlConnection
            Dim adapter As New SqlDataAdapter
            Dim sql As String
            connetionString = "Integrated Security=SSPI;Persist Security Info=False;" _
                & "Initial Catalog=GESTION_USINES;Data Source=.\SQLEXPRESS"
            connection = New SqlConnection(connetionString)
            sql = "insert into Client (Nom,Prenom) values ('" & Me.DataGridView1.Rows(i).Cells(0).Value & "', '" & Me.DataGridView1.Rows(i).Cells(1).Value & "')"
            Try
                connection.Open()
                adapter.InsertCommand = New SqlCommand(sql, connection)
                adapter.InsertCommand.ExecuteNonQuery()
     
                MsgBox("Row inserted !! ")
            Catch ex As Exception
                MsgBox(ex.ToString)
            End Try
    pour l'ajout des données dans ma table Client mais à chaque fois que j'ajoute une nouvelle ligne c'est toujours la première ligne qui s'ajoute encore et encore et j'aimerai savoir comment faire pour corriger ce problème

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonsoir,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    connection.Open()
    for i =0 to Me.DataGridView1.Rows.count-1
    sql = "insert into Client (Nom,Prenom) values ('" & Me.DataGridView1.Rows(i).Cells(0).Value & "', '" & Me.DataGridView1.Rows(i).Cells(1).Value & "')"
            Try
                adapter.InsertCommand = New SqlCommand(sql, connection)
                adapter.InsertCommand.ExecuteNonQuery()
                Catch ex As Exception
                MsgBox(ex.ToString)
            End Try
    Next
    MsgBox("Row inserted !! ")

  3. #3
    Membre régulier
    Homme Profil pro
    ETUDE
    Inscrit en
    Septembre 2016
    Messages
    360
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cameroun

    Informations professionnelles :
    Activité : ETUDE
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Septembre 2016
    Messages : 360
    Points : 117
    Points
    117
    Par défaut
    Bonsoir dysorthographie et merci pour votre réponse mais lorsque j'insert une données j'obtien l'erreur suivant
    Nom : disco.PNG
Affichages : 1570
Taille : 40,8 Ko

  4. #4
    Membre régulier
    Homme Profil pro
    ETUDE
    Inscrit en
    Septembre 2016
    Messages
    360
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cameroun

    Informations professionnelles :
    Activité : ETUDE
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Septembre 2016
    Messages : 360
    Points : 117
    Points
    117
    Par défaut
    Malgré le message d'erreur je remarque qu la ligne est ajouter dans la base de données maintenant comment faire pour corriger ce message d'erreur?

  5. #5
    Membre régulier
    Homme Profil pro
    ETUDE
    Inscrit en
    Septembre 2016
    Messages
    360
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cameroun

    Informations professionnelles :
    Activité : ETUDE
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Septembre 2016
    Messages : 360
    Points : 117
    Points
    117
    Par défaut
    Pour resoudre mon problème j'ai écrit le code suivant
    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
       'un exemple de mise à jour sur serveur
            'ligne de connection
            Dim Connexion As New SqlClient.SqlConnection("Data Source=.\sqlexpress;Initial Catalog=GESTION_USINES;integrated security=true")
            Try
     
                Connexion.Open()
                For i = 0 To Me.DataGridView1.Rows.Count - 1
                    For Each row As DataGridViewRow In DataGridView1.Rows
                        'fonction sql de mise à jour par deux textbox dans la table table1 dont 'un' est l'id NB: ceci modifie une ligne de la table
                        Dim cup As New SqlClient.SqlCommand("insert into Client (Nom, Prenom)values(@Nom, @Prenom)", Connexion)
                        'création des paramètres de mise à jour sur textbox
     
                        If Not row.IsNewRow Then
                            cup.Parameters.Add("@Nom", SqlDbType.NVarChar).Value = Me.DataGridView1.Rows(i).Cells(0).Value
                            cup.Parameters.Add("@Prenom", SqlDbType.NVarChar).Value = Me.DataGridView1.Rows(i).Cells(1).Value
                        End If
                        cup.ExecuteNonQuery()
                    Next
     
                Next
                'execution de la requete
     
                Connexion.Close()
            Catch ex As Exception
                MsgBox(ex.Message)
     
            End Try
    Mais lorsque j'insert la première ligne pas de problème mais à partir de la deuxième ligne, j'obtien l'erreur suivant
    Nom : ef.PNG
Affichages : 1474
Taille : 12,5 Ko
    comment faire pour corriger ce problème?

  6. #6
    Invité
    Invité(e)
    Par défaut
    Bonjour,
    Tu imbrique deux boucles qui font exactement la même chose, à savoir parcourir la DataGridView1 (For i = 0 et For Each)!
    Pas étonnant que tu te retrouves avec des doublons. De surcroît ta clé primaire est vraisemblablement sur nom et prénom ce qui interdit les homonomes!

    Et encore il faudrait vérifier par requête existence d'un enregistrement avant l'ajout!

    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
       'un exemple de mise à jour sur serveur
            'ligne de connection
            Dim Connexion As New SqlClient.SqlConnection("Data Source=.\sqlexpress;Initial Catalog=GESTION_USINES;integrated security=true")
            Try
    *
                Connexion.Open()
                For i = 0 To Me.DataGridView1.Rows.Count - 1
                    'For Each row As DataGridViewRow In DataGridView1.Rows
                        'fonction sql de mise à jour par deux textbox dans la table table1 dont 'un' est l'id NB: ceci modifie une ligne de la table
                        Dim cup As New SqlClient.SqlCommand("insert into Client (Nom, Prenom)values(@Nom, @Prenom)", Connexion)
                        'création des paramètres de mise à jour sur textbox
    *
                        If Not row.IsNewRow Then
                            cup.Parameters.Add("@Nom", SqlDbType.NVarChar).Value = Me.DataGridView1.Rows(i).Cells(0).Value
                            cup.Parameters.Add("@Prenom", SqlDbType.NVarChar).Value = Me.DataGridView1.Rows(i).Cells(1).Value
                        End If
                        cup.ExecuteNonQuery()
                    Next
    *
                'Next
                'execution de la requete
    *
                Connexion.Close()
            Catch ex As Exception
                MsgBox(ex.Message)
    *
            End Try
    Dernière modification par Invité ; 04/06/2017 à 11h28.

  7. #7
    Membre régulier
    Homme Profil pro
    ETUDE
    Inscrit en
    Septembre 2016
    Messages
    360
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cameroun

    Informations professionnelles :
    Activité : ETUDE
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Septembre 2016
    Messages : 360
    Points : 117
    Points
    117
    Par défaut
    Bonjour dysorthographie et merci pour tous ce temps que vous accorder à mon problème même un dimanche
    voila la requête de création de ma table j'ai modifier
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    CREATE TABLE [dbo].[Client](
    	[IdClient] [int] NOT NULL PRIMARY KEY,
    	[Nom] [nvarchar](20) NOT NULL,
    	[Prenom] [nvarchar](20) NULL
    )
    Requête d'insertion
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    INSERT INTO [dbo].[Client] values(4, 'DJOUONTU', 'Rodrigue')
    ce qui ajoute sans problème
    mais à partir du code vb.net sa ne marche pas même celui que vous m'avez donnés
    j’obtiens toujours une erreur

  8. #8
    Invité
    Invité(e)
    Par défaut
    Bonjour,
    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
     Sub test()
            Try
                Using Connexion As New SqlClient.SqlConnection("Data Source=.\sqlexpress;Initial Catalog=GESTION_USINES;integrated security=true")
                    Connexion.Open()
                    Dim Sql As String = ""
                    For Each row As DataGridViewRow In DataGridView1.Rows
                        Sql += "insert into Client ([Nom], [Prenom]) values('" & row.Cells(0).Value.tostring.replace("'", "''") & "', '" & row.Cells(1).Value.tostring.replace("'", "''") & "')" & Environment.NewLine
                    Next
                    If Execute(Sql, Connexion) = True Then MessageBox.Show("Ok")
                End Using
            Catch ex As Exception
                MessageBox.Show(ex.Message)
            End Try
        End Sub
        Public Function Execute(ByVal Sql As String, ByRef Connexion As SqlClient.SqlConnection) As Boolean
            Dim myObject As New Object
            Using cmd As New SqlCommand( _
                   Sql, Connexion)
                Try
                    Dim reader As SqlDataReader = cmd.ExecuteReader()
                    reader.Close()
                Catch ex As Exception
                    Return False
                End Try
                Return True
            End Using
        End Function
    Dernière modification par Invité ; 07/06/2017 à 12h35.

  9. #9
    Membre régulier
    Homme Profil pro
    ETUDE
    Inscrit en
    Septembre 2016
    Messages
    360
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cameroun

    Informations professionnelles :
    Activité : ETUDE
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Septembre 2016
    Messages : 360
    Points : 117
    Points
    117
    Par défaut
    Bonsoir dysorthographie et grand merci pour votre réponse mais lorsque j'applique j’obtiens le message suivant
    Nom : cryp.PNG
Affichages : 1496
Taille : 18,7 Ko

    mais jai trouver une autre solution
    la voici
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     Try
                cn.open()
                Dim cmt As String = "insert into Client values('" & Me.DataGridView1.CurrentRow.Cells("IdClient").Value.ToString & "','" & Me.DataGridView1.CurrentRow.Cells("Nom").Value.ToString & "','" & Me.DataGridView1.CurrentRow.Cells("Prenom").Value.ToString & "')"
                Dim cmd = New SqlCommand(cmt, cn)
                cmd.ExecuteNonQuery()
                cn.close()
     
                MsgBox("ok")
            Catch ex As Exception
                MsgBox(ex.Message)
            End Try
    et elle fonctionne mais j'aimerais bien comprendre se qui ne vas pas avec la méthode que vous avez envoyer

  10. #10
    Invité
    Invité(e)
    Par défaut
    Bonsoir,
    Difficile a dire c'est le code que j'utilise tout les jours!

    Si tu mets un point d'arrêter sur Using Connexion ey que tu fais [F8] à quelle ligne ce trouve l'erreur?

  11. #11
    Membre régulier
    Homme Profil pro
    ETUDE
    Inscrit en
    Septembre 2016
    Messages
    360
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cameroun

    Informations professionnelles :
    Activité : ETUDE
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Septembre 2016
    Messages : 360
    Points : 117
    Points
    117
    Par défaut
    chez mois j'appuis sur F11 mais je ne parvient pas à voir l'erreur mais l'instriction ne traverse pas la ligne INSERT

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

Discussions similaires

  1. Réponses: 4
    Dernier message: 14/05/2017, 17h07
  2. Réponses: 3
    Dernier message: 22/02/2016, 17h03
  3. [Débutant] Enregistrement des données dans une base de données sql server
    Par Efradit dans le forum C#
    Réponses: 9
    Dernier message: 09/05/2015, 15h36
  4. [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

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