2009-06-09 143 views
9

我有一個datagridview從LINQ查詢返回的數據。 如果查詢返回沒有結果,我想顯示一個消息框。 有沒有辦法檢查datagridview是否爲空?C#DataGridView檢查是否爲空

問候

+0

這是ASP .Net還是Windows Forms? – SLaks 2009-06-09 21:29:00

回答

23

你可以看看它是通過檢查DataGridView中的行數爲空。如果myDataGridView.Rows.Count == 0那麼你的DataGridView是空的。

0

您可以檢查datagridview的Rows.Count屬性。

儘管您可能還想查看DataGridView的EmptyDataText屬性。它可能會節省您顯示一個消息框。

1

根據Linq結果,您可以隱藏datagridview並顯示其他控件(如文字或其他),以顯示該消息。如果你想要某種類型的消息框彈出,你需要在那裏扔一些JavaScript。

+0

看不到爲什麼需要jscript,永遠都不需要 – Goober 2009-06-10 07:28:43

1

這裏有很多答案對Rows.Count有參考。通常情況下,這並不構成問題,並且在大多數情況下,做我即將提出的建議是一種矯枉過正的做法。

但對於this document提到的原因,可能不是一個好主意,打電話Rows.Count如果DataGridView經常有大量的數據(>~ 5000細胞在內存分析我也來驗證文章而回)。

避免使用 System.Windows.Forms.DataGridViewSelectedCellCollectionCount屬性來確定所選 細胞的數量。而應使用 DataGridView.GetCellCount方法並通過 DataGridViewElementStates.Selected值。同樣,使用 DataGridViewRowCollection.GetRowCountDataGridViewColumnCollection.GetColumnCount方法來確定所選元素的數量,而不是訪問選定行 和列集合。

在這種情況下,你可以使用

myDataGridView1.Rows.GetRowCount(.) == 0 

如果你不處理快速變化的數據,或者一個巨大的數據(或更糟的是,快速變化的數據量巨大)的金額,然後只需使用行。伯爵 - 這並沒有太大的傷害。

0

這應做到:

dataGridView1.RowCount == 0 
2

檢查是否DGV是空的,如果選項AllowUserToAddRows設置爲true不起作用的DGV.Rows.Count方法。

您必須禁用AllowUserToAddRows = false然後檢查空這樣的:

if (dataGridView1.Rows.Count != 0 && dataGridView1.Rows != null) 
1

//這給行數= 1

if (dataGridView1.Rows.Count != 0 && dataGridView1.Rows != null) 

//所以最後我modifieded代碼如下,它的工作原理對我來說

if(dataGridView1.Rows.Count>1 && dataGridView1.Rows != null)