C#DataGridView检查是否为空

C#DataGridView检查是否为空,c#,winforms,datagridview,C#,Winforms,Datagridview,我有一个datagridview,其中填充了从linq查询返回的数据。 如果查询没有返回结果,我想显示一个messagebox。 有没有办法检查datagridview是否为空 关于您可以通过检查DataGridView中的行数来确定它是否为空。如果myDataGridView.Rows.Count==0,则DataGridView为空。您可以检查DataGridView的Rows.Count属性 尽管您可能还希望查看DataGridView的EmptyDataText属性。它可以节省显示mes

我有一个datagridview,其中填充了从linq查询返回的数据。 如果查询没有返回结果,我想显示一个messagebox。 有没有办法检查datagridview是否为空


关于

您可以通过检查DataGridView中的行数来确定它是否为空。如果myDataGridView.Rows.Count==0,则DataGridView为空。

您可以检查DataGridView的Rows.Count属性


尽管您可能还希望查看DataGridView的EmptyDataText属性。它可以节省显示messagebox的时间。

根据Linq结果,您可以隐藏datagridview并显示显示消息的其他控件(如文字或其他内容)。如果您想要某种类型的messagebox弹出窗口,您需要在其中加入一些JavaScript。

这里的许多答案都引用了
行。Count
。通常情况下,这并不构成问题,而且在大多数情况下,按照我的建议去做是一种过分的做法

但是由于本文提到的原因,如果
DataGridView
经常有大量数据(
~5000个单元格,在我前一段时间为验证那篇文章而做的内存分析中),调用
Rows.Count
可能不是一个好主意

避免使用
System.Windows.Forms.DataGridViewSelectedCellCollection
确定 选定单元格的数目。相反,使用
DataGridView.GetCellCount
方法并传入
DataGridViewElementState。已选择值。同样,使用
DataGridViewRowCollection.GetRowCount
DataGridViewColumnCollection.GetColumnCount
方法来确定 选定元素的数量,而不是访问选定行 和专栏集

在这种情况下,您可以使用

myDataGridView1.Rows.GetRowCount(.) == 0
如果您没有处理快速变化的数据或大量数据(或者更糟糕的是,大量快速变化的数据),那么只需使用Rows.Count——这不会造成太大的伤害。

这应该可以做到:

dataGridView1.RowCount == 0

如果选项
AllowUserToAddress
设置为true,则检查DGV是否为空的
DGV.Rows.Count
方法无效

您必须禁用
allowUserToAddress=false
然后检查是否为空,如下所示:

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

//这使行数为1

if (dataGridView1.Rows.Count != 0 && dataGridView1.Rows != null)
//所以最后我修改了代码,如下所示,它适合我

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

这是ASP.Net还是Windows窗体?根本不明白为什么需要jscript,尽管它并不总是像下面Ashraf Abusada的回答中所说的那样工作