MAJ sur DataGridView à l'aide des buttons

famou2 Messages postés 16 Date d'inscription vendredi 11 décembre 2009 Statut Membre Dernière intervention 14 juin 2010 - 11 déc. 2009 à 18:43
famou2 Messages postés 16 Date d'inscription vendredi 11 décembre 2009 Statut Membre Dernière intervention 14 juin 2010 - 13 déc. 2009 à 18:28
Bonjour à tous.
Je suis nouvelle à ce forum. Je tente de faire une forme qui contient une DataGridView et des Buttons(Ajouter,Supprimer,Modifier)pour la MAJ.
J’ai programmé le Button Ajouter en mode connecté pour ajouter des nouveaux enregistrements du DataGridView à la Base de donnée.
J’ai utilisé le code ci-dessous, mais il ne marche qu’une seule fois, en plus il ajoute une ligne où il accorde des zéros aux champs numériques et le vide aux autres champs. Peut être le problème dans la boucle For, mais je sais pas où exactement.
Pouvez-vous me donner une idée sur comment faire le button Ajouter en mode déconnecté? Je suis si besoin à vos aides.
Merci d’avance.

Imports System.Data.SqlClient
Public Class Form1
Dim con As New SqlConnection("Data Source=.; Initial Catalog=Ecole; Integrated Security=True")
Dim com As New SqlCommand
Dim i As Integer
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Dastg1.Fill(Ds1.Stagiaire)
For i = 0 To Ds1.Stagiaire.Rows.Count - 1
dg.Rows.Add(Ds1.Stagiaire.Rows(i).ItemArray)
Next
End Sub

Private Sub btnvider_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnvider.Click
dg.Rows.Clear()
End Sub

Private Sub btnajouter_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnajouter.Click
Dim v1 As Integer
Dim v2, v3 As String
For i = 0 To dg.Rows.Count - 1
v1 = dg.Rows(i).Cells(0).Value
v2 = dg.Rows(i).Cells(1).Value
v3 = dg.Rows(i).Cells(2).Value
com.Connection = con
com.CommandText = "insert into Stagiaire values (" & v1 & ",'" & v2 & "','" & v3 & "')"
con.Open()
com.ExecuteNonQuery()
con.Close()
MsgBox("ajouté avec succès")
Next
End Sub
End Class

2 réponses

cs_ssefyou Messages postés 119 Date d'inscription samedi 3 mai 2008 Statut Membre Dernière intervention 18 juillet 2013 1
11 déc. 2009 à 21:55
salam,

j'ai une petite explication pour la ligne vide
et bien par ce que dans ton datagrid tu as une ligne de vide c la dernière ligne qui se cree toute seul donc pour éviter la derniere ligne vide ta boucle sera
For i = 0 To dg.Rows.Count - 2

pour l'autre probleme je croi qu'il vient de la clé primaire de ta table au niveau de la DB
si tu essai d'inserer un enrigistrement deja présent ça va déconné ...

PS : pourkoi ouvrire et fermer la connexion pour chaque enregistremement !!!



con.Open() 
For i = 0 To dg.Rows.Count - 1 
v1 = dg.Rows(i).Cells(0).Value 
v2 = dg.Rows(i).Cells(1).Value 
v3 = dg.Rows(i).Cells(2).Value 
com.Connection = con 
com.CommandText = "insert into Stagiaire values (" & v1 & ",'" & v2 & "','" & v3 & "')" 
  
Try
   com.ExecuteNonQuery() 
   MsgBox("ajouté avec succès") 
Catch ex As Exception
   msgbox(ex.message)
End Try

Next 

con.Close() 



@+
0
famou2 Messages postés 16 Date d'inscription vendredi 11 décembre 2009 Statut Membre Dernière intervention 14 juin 2010
13 déc. 2009 à 18:28
Bonsoir.
Je veux dire 2 choses :
1_ Je suis désolé, j ai fais un retard pour vous répondre Mr. ssefyou..
2_Grand merci pour vous, ça marche maintenant.
J ai une petite question ; maintenant j ai travaillé l application en mode déconnecté, dans le buutton supprimer, je veux qu après la suppression, la ligne de l enregistrement dans la DataGridView doit être disparaître, j ai utilisé ce code mais il est faux. :
For i = 0 To dg.Rows.Count - 2
If dg.Rows(i).Cells(0).Selected Then
Ds1.Stagiaire.Rows(i).Delete()
Dastg1.Update(Ds1.Stagiaire)
MsgBox("supprimé avec succès")
dg.Rows(i).Cells.Clear()
End If
Next
0
Rejoignez-nous