希望你能帮助我。
我想通过使用某个关键字(例如名称)过滤我的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'"
答案 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上找到我