绑定源过滤

时间:2012-12-31 13:58:16

标签: vb.net datagridview filter bindingsource

希望你能帮助我。

我想通过使用某个关键字(例如名称)过滤我的datagridview。 我使用了一个数据集,然后将其绑定到数据源,然后绑定到我的datagridview进行查看。

当我使用bindingsource.filter时,我无法获得任何结果。

这是我的代码:

    Dim ds As New DataSet
    Dim bs As New BindingSource

    Dim sql As String = "SELECT TOP 10 * FROM dbo.DimCustomer"
    Dim connection As New SqlConnection(sqlconnectionstring)
    Dim dataadapter As New SqlDataAdapter(sql, connection)



    connection.Open()
    ds.Clear()
    dataadapter.Fill(ds, "Customer")
    connection.Close()


    bs.DataSource = ds

    dgv1.DataSource = bs
    dgv1.DataMember = "Customer"
    bs.Filter = "FirstName = 'Jon'"

3 个答案:

答案 0 :(得分:4)

谢谢大家的帮助,但我得到了以下代码:

Dim sql As String = "select * from HumanResources.vEmployee"
Dim connection As New SqlConnection(sqlconnectionstring)
Dim dataadapter As New SqlDataAdapter(sql, connection)
Dim dsView As New DataView()

Try
  connection.Open()
  ds.Clear()
  dataadapter.Fill(ds, "test")
  dsView = ds.Tables(0).DefaultView
  bs.DataSource = dsView
  dgv1.DataSource = bs
  bs.Filter = "FirstName like 'J%'"
Catch ex As Exception
  MessageBox.Show("Error while connecting to SQL Server." & ex.Message)
Finally
  connection.Close()
End Try

答案 1 :(得分:0)

我认为问题在于你的bindingsource应该指向数据视图而不是数据集。以下是MSDN网站的链接,其中包含更多explanation。以下是Dataview的更多信息。

我没有时间对此进行测试,但我认为这在逻辑上是正确的。你能试试吗?

   dim dsView as new DataView(ds.Tables("Customer"))

   bs.DataSource = dsView
   dgv1.DataSource = bs
   dgv1.DataMember = "Customer"
   bs.Filter = "FirstName = 'Jon'"

答案 2 :(得分:0)

我的名字是Mohamed Hosny

您的代码很好,并且没有错误,但我需要您进行一些更改 第一步:将表名添加到数据集bs.DataSource = ds.Tables [“DimCustomer”] 第二:我认为在将绑定源分配给datagridview

之前必须先进行过滤行

bs.Filter =“FirstName ='Jon'” dgv1.DataSource = bs

另外我认为你不需要行dgv1.DataMember =“Customer”

试试这个,如果这不起作用,我会给你完整的代码,但是通过c#我多次出现。

在www.hcsmedia.org或www.hosysys.com上找到我

相关问题