Bonjour à tous et à toutes,
Voici mon problème : j'ai une fonction qui me permet de charger un datagrid avec un dataset. Le datagrid permet d'ajouter un item dans son footer. Cette fonction gère également la mise à jour de l'index en cas d'édition d'une ligne du datagrid. Voici le code :
Mon problème c'est que qd le dataset est vide j'ai une erreur au niveau du databind, c'est pourquoi je fais le test avant de binder. Le problème c'est que s'il n'y a pas de databind (car le dataset est vide), le datagrid ne s'affiche pas du tout et donc je peux pas ajouter grâce au footer. En résumé je suis d'abord obligée de sélectionner des lignes avant de pouvoir en rajouter
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 Sub SqlDataGridIndex(ByVal DG As DataGrid, ByVal DA As SqlDataAdapter, Optional ByVal key As String = "", Optional ByVal index As Integer = 0) Dim DS As New DataSet DA.Fill(DS) If DS.Tables.Count <> 0 Then DG.DataSource = DS If key.Length <> 0 Then DG.EditItemIndex = index DG.DataKeyField = key End If DG.DataBind() End If End Sub
Vous me direz qu'il suffit de créer une datatable pour mon dataset. Le problème c'est que ses colonnes devront correspondre au datagrid et donc ma fonction ne marchera plus que pour un datagrid
Ce que je trouve dommage c'est qu'avec un datareader je n'ai pas ce problème : même si le datareader n'a pas de résultat, le databind ne provoque pas d'erreur et donc j'ai au moins le header et le footer de mon datagrid qui s'affichent. Malheureusement avec le datareader ce sont les lignes :
qui posent un problème d'ouverture de reader
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6If key.Length <> 0 Then DG.EditItemIndex = index DG.DataKeyField = key End If
une idée pour moi siouplait merci d'avance
Partager