2012-11-20 96 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

謝謝,我現在就試試看,看看它是如何做到我希望它。我會盡快回復您的結果...非常感謝您的時間和精力。 –