famou2
Messages postés16Date d'inscriptionvendredi 11 décembre 2009StatutMembreDernière intervention14 juin 2010
-
11 déc. 2009 à 18:43
famou2
Messages postés16Date d'inscriptionvendredi 11 décembre 2009StatutMembreDernière intervention14 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
cs_ssefyou
Messages postés120Date d'inscriptionsamedi 3 mai 2008StatutMembreDernière intervention18 juillet 20131 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()
famou2
Messages postés16Date d'inscriptionvendredi 11 décembre 2009StatutMembreDernière intervention14 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