Bonjour,
Je suis sous visual studio 2005 express, je fais une application en vbnet avec une base de données access.
J'ai un Datagrid qui a deux colonnes la premiére c'est des case à cocher et la deuxieme c'est un champ d'une table.
L'utilisateur peut ajouter des lignes, et peur cocher n'importe qu'elle ligne.
Quand il valide, je voudrais insérer dans une table les champs des lignes qui on été cochées meme pour les nouvelles lignes que l'utilisateur a pu rajouter.
J'ai fais ça :
Le pb est que ça ne marche pas : le if ne se déclenche pas. J'ai essayé le cas d'une ligne modifié pensant que coché une case modifie une ligne mais non plus.
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 Private Sub Valider_Click(ByVal se..... Dim DTAVMaj As New DataView Dim DTARV As DataRowView command.Connection.Open() DTAVMaj.Table = DTable DTAVMaj.RowStateFilter = DataViewRowState.Added Or DataViewRowState.ModifiedCurrent 'DataViewRowState.Deleted Or DataViewRowState.ModifiedCurrent Or For Each DTARV In DTAVMaj Select Case DTARV.Row.RowState Case DataRowState.Added command.CommandText() = "INSERT INTO Niveaux (Nom)" _ & " VALUES ('" & DTARV.Row.Item("Nom") & "')" command.ExecuteNonQuery() If DTARV.Row.Item(0).ToString = "true" Then MsgBox(DTARV.Row.Item("Nom") & "je suis cochée") End If Case DataRowState.Modified command.CommandText() = "INSERT INTO Niveaux (Nom)" _ & " VALUES ('" & DTARV.Row.Item("Nom") & "')" command.ExecuteNonQuery() If DTARV.Row.Item(0).ToString = "true" Then MsgBox(DTARV.Row.Item("Nom") & "je suis cochée") End If End Select Next
Je pense que ma démarche n'est pas la bonne il faudrait parcourir le datagrid ligne par ligne, si la case est cochée alors insérer le champ dans une table, alors que là j'avance par état de la ligne (ajoutée, modifiée)...
Si quelqu'un a une idée je suis preneuse,
merci beaucoup
Partager