2012-11-20 57 views
0

循环是否有通过在一个DataGridView搜索所有与一列中的数据相同的行中的所有行的方式来循环......通过的DataGridView VB.NET中

例如:DGV1有列ID, TransID, Name, Desc

让我们说我有在DGV 3行,

2行具有相同的TransID = 1

和最后一排有一个TransID = 2

Textbox1我输入“2”,并按下按钮。

我想通过DGV1循环来找到具有相同TRANSID在我的文本框中的一个我输入的所有行,并以另一种形式复制这些数据DGV2 ...

我问一个问题较早,但没有一个似乎能够帮助我,我真的需要帮助这个...要了解更多关于我的困境,这里的链接到我的前面的问题...

How to loop through datagridview 1 and copy loop results to datagridview2 in a different form and DB table

这里

@HaBouF是现在,我从你的密码中完成了什么我设法过滤DGV

数据库名称是DGV2(窗体2)对于DGV1(Form1上)test表名是tested和表名是testing

代码

Dim ta As New testDataSetTableAdapters.testedTableAdapter Dim f2 As New Form2

 dv.Table = TestDataSet.tested 
     dv.RowFilter = "TransID LIKE '%" & TextBox1.Text & "%'" 
     f2.DGV2.DataSource = dv 
     f2.Show() 

此代码过滤数据并将其显示在DGV2而是因为我们更换的DGV2数据源,在DGV2现有的数据被暂时取消,如何将添加过滤的数据表testing(DGV2)而无需去除DGV2现有的数据直接将其添加到Database因为我可以管理只需增加一个Refresh button即可将DGV2的数据源更改回testing

+0

显示您用来填充dgv1的代码。这将有助于指导你创建类似的代码,以实现你想要实现的过滤 – Nianios

回答

1

试试这个: 我想象你有一个数据表(dtOriginalData),您的数据填充它,然后你做:

dgv1.DataSource=dtOriginalData 

你需要的是过滤这些数据:

dtOriginalData.DefaultView.RowFilter = "TransID = " & textToFilter.Text 

Dim MyNewTable As DataTable = dt.DefaultView.ToTable 

你现在需要的是打开新的形式,并提供过滤后的数据:

dim f2 as new Form2 
f2.DGV2.DataSource=MyNewTable 
f2.Show 

如果form2已经打开并且您想更新它,则可以。

如果您显示为您的代码并更好地解释您希望达到的目标,我们将能够为您提供更多帮助。

+0

感谢您的回复,抱歉我迟到了,是的,我正在使用DataTable ...我所有的数据网格都是数据绑定的...我看到,明天我会试着做这件事,因为我一直试图这样做一整天......并且明天让你知道它是否有效......尽管你有一个问题,但我认为这个代码可以工作,但如果我的DGV2具有现有数据,而我只是想将DGV1中的数据添加到DGV2 ....因为此代码只会过滤DGV1并将DGV2替换为正确的?非常感谢您的回复... –

+0

是的,它按照您的描述工作。如果您需要添加过滤器数据,请告诉我您的代码,以及如何绑定dgv2。我需要那个来帮助你。我们可以在很多方面做到这一点 – Nianios

+0

谢谢,我现在就试试看,看看它是如何做到我希望它。我会尽快回复您的结果...非常感谢您的时间和精力。 –