在 vb net 中显示从 1 个平板电脑到 2 个过滤后的 datagridview 的数据
Posted
技术标签:
【中文标题】在 vb net 中显示从 1 个平板电脑到 2 个过滤后的 datagridview 的数据【英文标题】:display data from 1 tablet to 2 filtered datagridview in vb net 【发布时间】:2014-07-30 12:36:15 【问题描述】:我有两个 datagridview 控件和一个表。我正在尝试使用 dgv1 上的一个过滤器和 dgv2 上的多个过滤器来显示数据。基本上我要问的是 dgv 1 应该在 7 月份显示所有具有截止日期的客户,而 dgv2 应该在 7 月份显示客户 john 的所有记录。两个 dgv 都从同一个表中提取记录。
我的问题是这两个都显示相同的信息。 这就是我到目前为止所拥有的。
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
dbprov = "Provider = Microsoft.ACE.OLEDB.12.0;"
dbsource = "Data Source = C:\Users\Sonu\Desktop\VB_Projects\database1.accdb"
sql = "SELECT * FROM T_Cutdata"
sqlDelete = "SELECT * FROM T_DeletedData"
con.ConnectionString = dbprov & dbsource
con.Open()
'MsgBox("Open")
da = New OleDb.OleDbDataAdapter(sql, con)
da.Fill(ds, "lawncutdata")
Dim dv_all As DataView = ds.Tables("lawncutdata").DefaultView
DataGridView1.DataSource = dv_all
dv_all.RowFilter = "cutdate>='07/01/2014' and cutdate<='07/10/2014'"
'"CustomerID = '" + s_customerID +"'"
DataGridView1.DataSource = dv_all
Dim dv_one As DataView = ds.Tables("lawncutdata").DefaultView
dGridOneCustomer.DataSource = dv_one
dv_one.RowFilter = "cutday='" + currentday + "' and customer_name='" + custname + "'"
'"CustomerID = '" + s_customerID +"'"
dGridOneCustomer.DataSource = dv_one
我一生都无法弄清楚为什么要这样做。我在想我可能需要创建一个新数据集并将第二个 dgv 绑定到该数据集。请帮忙,我卡住了。
提前谢谢你
【问题讨论】:
【参考方案1】:您的代码的问题是,您使用dv_all.RowFilter
和dv_one.RowFilter
引用相同的对象。
使用Dim dv_one As DataView = ds.Tables("lawncutdata").Copy().DefaultView
作为第二个DataGridView
应该可以解决问题。
【讨论】:
【参考方案2】:您在两个网格中使用相同的DataView
(表格的默认视图)。您所要做的就是创建两个新的数据视图。
Dim dv_all As New DataView(ds.Tables("lawncutdata"))
Dim dv_one As New DataView(ds.Tables("lawncutdata"))
请注意,数据视图是reference type。
Dim dv_all As DataView = ds.Tables("lawncutdata").DefaultView
Dim dv_one As DataView = ds.Tables("lawncutdata").DefaultView
在上面的代码中,dv_all
和 dv_one
都会指向同一个实例。
【讨论】:
以上是关于在 vb net 中显示从 1 个平板电脑到 2 个过滤后的 datagridview 的数据的主要内容,如果未能解决你的问题,请参考以下文章
如何从 vb.net 的播放列表中显示媒体播放器正在播放的文件?
vb.net2010从ACCESS的OLE字段读出图片显示到PictureBox控件上