关于在Dataset中filter的问题

[复制链接]
查看11 | 回复0 | 2021-1-27 06:22:06 | 显示全部楼层 |阅读模式
特别的好奇,我有两个datagridview,一个显示master,一个显示detail,如果按照下面的方法可以master,detail都显示正常。
DataGridView1.DataSource=dataSet
DataGridView1.DataMember="master"
DataGridView2.DataSource=dataSet
DataGridView2.DataMember="master.MasterDetail"
但是我还想有个文本框,输入内容时,自动filtermaster,dataSet.Tables("master").DefaultView.RowFilter="PartnumberLike'%"&TextBxSearch.Text&"%'"发现文本框的内容没法filter。
如果我不显示master,detail,在填成datagirdview1时,DataGridView1.DataSource=dataSet.Tables("master")这样填充,filter就很正常。研究了好久天都没明白,为什么一用datasource,datamember就无法filter了。
代码如下:

PrivateSubLoadData()
Try
MyConnection=NewSystem.Data.OleDb.OleDbConnection("provider=Microsoft.ACE.OLEDB.12.0;DataSource=C:\test.xlsx;ExtendedProperties=Excel12.0;")
DAmaster=NewSystem.Data.OleDb.OleDbDataAdapter("selectPartnumber,Option,Descriptionfrom[sheet1$]wherepartnumber=option",MyConnection)
DAdetail=NewSystem.Data.OleDb.OleDbDataAdapter("selectPartnumber,Option,Descriptionfrom[sheet1$]wherepartnumberoption",MyConnection)
dataSet=NewSystem.Data.DataSet
DAmaster.Fill(dataSet,"master")
DAdetail.Fill(dataSet,"detail")
dataSet.Relations.Add("MasterDetail",dataSet.Tables("Master").Columns("Partnumber"),dataSet.Tables("Detail").Columns("Partnumber"))

'DataGridView1.DataSource=dataSet.Tables("master")
DataGridView1.DataSource=dataSet
DataGridView1.DataMember="master"
DataGridView2.DataSource=dataSet
DataGridView2.DataMember="master.MasterDetail"
DataGridView1.Refresh()
MyConnection.Close()
CatchexAsException
EndTry
EndSub
PrivateSubTextBxSearch_TextChanged(senderAsObject,eAsEventArgs)HandlesTextBxSearch.TextChanged
dataSet.Tables("master").DefaultView.RowFilter="PartnumberLike'%"&TextBxSearch.Text&"%'"
EndSub
EndClass
分 -->
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行