我有一个datagridview,它填充了linq查询返回的数据。 如果查询没有返回任何结果,我想显示一个消息框。 有没有办法检查datagridview是否为空?
此致
答案 0 :(得分:29)
通过检查DataGridView中的行数,可以确定它是否为空。如果myDataGridView.Rows.Count == 0
,那么您的DataGridView为空。
答案 1 :(得分:2)
如果选项DGV.Rows.Count
设置为true,则检查DGV是否为空的AllowUserToAddRows
方法无效。
你必须禁用AllowUserToAddRows = false
,然后像这样检查空:
if (dataGridView1.Rows != null && dataGridView1.Rows.Count != 0)
答案 2 :(得分:2)
//这给出了行数= 1
if (dataGridView1.Rows.Count != 0 && dataGridView1.Rows != null)
//所以最后我修改了如下代码,它适用于我
if(dataGridView1.Rows.Count>1 && dataGridView1.Rows != null)
答案 3 :(得分:1)
根据Linq结果,您可以隐藏datagridview并显示一些显示消息的其他控件(如Literal或其他内容)。如果你想要某种消息框弹出窗口,你需要在那里抛出一些JavaScript。
答案 4 :(得分:1)
这里的很多答案都提到Rows.Count
。通常情况下,这不会造成问题,并且在大多数情况下,做我即将建议的事情会有些过分。
但出于this document中提到的原因,如果Rows.Count
经常有大量数据(DataGridView
个单元格,则调用>~ 5000
可能不是一个好主意我做了一段时间来验证那篇文章。
避免使用的
Count
属性System.Windows.Forms.DataGridViewSelectedCellCollection
确定 所选单元格的数量。相反,使用DataGridView.GetCellCount
方法并传入DataGridViewElementStates.Selected
值。DataGridViewRowCollection.GetRowCount
同样,使用DataGridViewColumnCollection.GetColumnCount
和myDataGridView1.Rows.GetRowCount(.) == 0
方法来确定 所选元素的数量,而不是访问所选行 和列集合。
在这种情况下,您可以使用
{{1}}
如果您没有处理快速变化的数据或大量数据(或更糟糕的是,大量快速变化的数据),那么只需使用Rows.Count - 它不会造成太大的伤害。
答案 5 :(得分:0)
您可以检查datagridview的Rows.Count属性。
虽然您可能还想查看DataGridView的EmptyDataText属性。它可能会让您无法显示消息框。
答案 6 :(得分:0)
这应该这样做:
dataGridView1.RowCount == 0