2013-01-20 75 views
0

我在我的winform上有一個datagridview,它從我的數據庫返回一個搜索結果。搜索返回後,我想刪除指定列中的空行。 下面是一個例子:刪除指定列上包含空值的行

enter image description here

讓我們說,我想刪除這對類型#2列空值的行。

我完全卡住了。我應該怎麼做?

+0

我試圖從這個鏈接修改的第一個答案:http://stackoverflow.com/questions/2824576/how-to-remove-row-which-has-one-or-more-empty - 或 - null-cell 問題是,我無法找到任何選項來指定列。任何想法? ps:這段代碼不適合我的問題,因爲每一行都有一個空值,所以它會刪除所有記錄。 – Mudkip

+0

好吧,這是可選的或必要的刪除所有的列'null'?哪裏想在'datagridview'中刪除或從'DatagridViewRow'刪除到數據庫? – spajce

+0

我不打算刪除所有列中的所有行,只是在一個列中(例如我上面說過的,例如Type#2或Ability#1)。我想直接在datagridView中刪除它,因爲我沒有將搜索結果存儲在任何數據庫的表中。 – Mudkip

回答

1
var rowsNull = (from a in dataGridView1.Rows.Cast<DataGridViewRow>() 
    where a.Cells[2].Value == null 
    select a).ToList(); 
foreach (DataGridViewRow item in rowsNull) 
{ 
    dataGridView1.Rows.RemoveAt(item.Index); 
} 
+0

它拋出InvalidOperationException,類似於「它不可能刪除未確認的行」,在dataGridView1.Rows.RemoveAt(item.Index); 一個問題:電池實際上是一列或其所代表的行和列的集合? – Mudkip

+0

我的回答是正確的,但你應該按照這個[刪除行後](http://stackoverflow.com/questions/1560559/c-sharp-how-do-i-refresh-datagridview-after-removing-rows)或[DataGridView.Rows.RemoveAt(INT指數)](http://stackoverflow.com/questions/7508624/datagridview-rows-removeatint-index-doesnt-remove-row-in-windows-form) – spajce

+0

這工作完全適合我!謝謝。使用.remove(row)對我無法正常工作。 – Perfection