8
votes

Comment filtrer correctement un jeu de données (DataTable.Sélectionnez)

Dim dt As New DataTable
Dim da As New SqlDataAdapter(s, c)

        c.Open()
        If Not IsNothing(da) Then
            da.Fill(dt)
            dt.Select("GroupingID = 0")
        End If

        GridView1.DataSource = dt
        GridView1.DataBind()
        c.Close()
When I call da.fill I am inserting all records from my query. I was then hoping to filter them to display only those where the GroupingID is equal to 0. When I run the above code. I am presented with all the data, the filter did not work. Please can you tell me how to get this working correctly. Thanks.

0 commentaires

3 Réponses :


21
votes

dt.select () code> renvoie un tableau de datarswers.

Pourquoi n'utilisez-vous pas de DataView? P>

 DataView dv = new DataView(dt);
 dv.RowFilter = "GroupingID = 0";
 GridView1.DataSource = dv;


1 commentaires

Réponse très simple et efficace. Merci.



1
votes

La réponse acceptée est correcte, bien qu'elle aurait dû être donnée dans vb.net pour mieux profiter à celui qui a posé la question posée. Ici, il est dans vb.net:

Dim dt As New DataTable:Dim dv As New DataView(dt):dv.RowStateFilter = "GroupingID = 0":DataGridView1.DataSource = dv


0 commentaires

2
votes

Junt au cas où ... pense que vous avez une petite faute de frappe dans votre code VB.NET. Il devrait être dv.rowfilter au lieu de dv.rowstatefilter, donc: xxx


2 commentaires

Bonjour Sergio, bienvenue à ce que cela ne nous aide pas beaucoup parce que votre réponse est identique comme réponse acceptée. Veuillez faire une visite ici Stackoverflow.com/tour


Mon commentaire était destiné à montrer sur le message ci-dessous qui affiche le code dans VB.NET qui a effectivement une faute de frappe.