在Windows应用程序VB.NET中搜索datagridview

时间:2015-06-20 07:30:28

标签: vb.net search datagridview

我必须使用textbox过滤datagridview。我用来填充db class的gridview.getdata函数的代码返回数据表。

我没有使用gridview的数据源属性而是使用循环来归档gridview。

我可以使用datasource属性和dataview进行搜索,但我不能直接从datasource属性填充datagridview。

Sub griddesgn()
    DataGridView1.Columns.Clear()
    DataGridView1.Rows.Clear()
    DataGridView1.Columns.Add("crime", "crime")
    DataGridView1.Columns.Add("actname", "actname")
    DataGridView1.Columns.Add("section", "section")
    DataGridView1.Columns.Add("description", "description")
End Sub

Private Sub TEST_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
    griddesgn()
    Dim DBOBJ As New db
    Dim DTT As DataTable = DBOBJ.getdata("SELECT crime,actname,section,description from natureofcomplaint_women")

    If DTT.Rows.Count > 0 Then
        For i As Integer = 0 To DTT.Rows.Count - 1
            DataGridView1.Rows.Add()
            DataGridView1.Rows(i).Cells("crime").Value = DTT.Rows(i).Item("crime") & ""
            DataGridView1.Rows(i).Cells("actname").Value = DTT.Rows(i).Item("actname") & ""
            DataGridView1.Rows(i).Cells("section").Value = DTT.Rows(i).Item("section") & ""
            DataGridView1.Rows(i).Cells("description").Value = DTT.Rows(i).Item("description") & ""
        Next
    End If

End Sub

3 个答案:

答案 0 :(得分:0)

在SQL查询中使用WHERE语句

"SELECT crime,actname,section,description from natureofcomplaint_women WHERE crime = " & txtSearch.text

(如果你想搜索犯罪。) 改变你的需求。 只需重复上面使用的数据网格填充,但每次键入/按下搜索按钮时都会有一个更改的SQL查询

答案 1 :(得分:0)

我仍然认为绑定最好......

Sub griddesgn()
DataGridView1.Columns.Clear()
DataGridView1.Rows.Clear()
DataGridView1.Columns.Add("crime", "crime")
DataGridView1.Columns.Add("actname", "actname")
DataGridView1.Columns.Add("section", "section")
DataGridView1.Columns.Add("description", "description")
End Sub

Private Sub TEST_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
    griddesgn()
    Dim DBOBJ As New db
    Dim DTT As DataTable = DBOBJ.getdata("SELECT crime,actname,section,description from natureofcomplaint_women")

    Dim source1 as New BindingSource()
    source1.DataSource = DTT
    source1.Filter = "crime = '" & textboxtCrime.text & "'"
    DataGrideView1.DataSource = source1

End Sub

答案 2 :(得分:0)

Sub griddesgn()
    DataGridView1.Columns.Clear()
    DataGridView1.Rows.Clear()
    DataGridView1.Columns.Add("crime", "crime")
    DataGridView1.Columns.Add("actname", "actname")
    DataGridView1.Columns.Add("section", "section")
    DataGridView1.Columns.Add("description", "description")
End Sub

Private Sub TEST_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
    griddesgn()
    Dim DBOBJ As New db
    Dim DTT As DataTable = DBOBJ.getdata("SELECT crime,actname,section,description from natureofcomplaint_women")

    If DTT.Rows.Count > 0 Then
       For i As Integer = 0 To DTT.Rows.Count - 1
        If  (DTT.Rows(i).Item("Crime").Contains(txtCrimeFilter.Text) AND & _
                (DTT.Rows(i).Item("actname").Contains(txtActnameFilter.Text) AND & _
                (DTT.Rows(i).Item("section").Contains(txtSectionFilter.Text)     AND & _
                (DTT.Rows(i).Item("description").Contains(txtDescriptionFilter.Text)
                DataGridView1.Rows.Add()
                DataGridView1.Rows(i).Cells("crime").Value = DTT.Rows(i).Item("crime") & ""
                DataGridView1.Rows(i).Cells("actname").Value = DTT.Rows(i).Item("actname") & ""
                DataGridView1.Rows(i).Cells("section").Value = DTT.Rows(i).Item("section") & ""
                DataGridView1.Rows(i).Cells("description").Value = DTT.Rows(i).Item("description") & ""
        End If
    Next
End If

End Sub