C# DataGridView Check if empty

烈酒焚心 提交于 2020-01-01 07:56:25

问题


I have a datagridview which gets filled with data returned from a linq query. If the query returns no results I want to display a messagebox. Is there a way of checking to see if the datagridview is empty?

Regards


回答1:


You can find out if it is empty by checking the number of rows in the DataGridView. If myDataGridView.Rows.Count == 0 then your DataGridView is empty.




回答2:


The DGV.Rows.Count method of checking if DGV is empty does not work if the option AllowUserToAddRows is set to true.

You have to disable AllowUserToAddRows = false then check for empty like this:

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



回答3:


//this gives rows count=1

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

//so finally I modifieded code as below and it works for me

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



回答4:


Based on the Linq results, you can hide the datagridview and show some other control (like a Literal or something) that shows the message. If you want some sort of messagebox popup, you'd need to throw some JavaScript in there.




回答5:


A lot of answers here have a reference to Rows.Count. Normally, that does not pose a problem and it would in most cases be an overkill to do what I am about to suggest.

But for reasons mentioned in this document it may not be a good idea to call Rows.Count if the DataGridView frequently has a lot of data (>~ 5000 cells in the memory profiling I did to validate that article a while back).

Avoid using the Count property of the System.Windows.Forms.DataGridViewSelectedCellCollection to determine the number of selected cells. Instead, use the DataGridView.GetCellCount method and pass in the DataGridViewElementStates.Selected value. Similarly, use the DataGridViewRowCollection.GetRowCount and DataGridViewColumnCollection.GetColumnCount methods to determine the number of selected elements, rather than accessing the selected row and column collections.

In such cases you can use

myDataGridView1.Rows.GetRowCount(.) == 0

If you are not dealing with fast changing data or a huge amount of data (or worse, huge amount of fast changing data) then simply use Rows.Count --it does not hurt that much.




回答6:


You can check the Rows.Count property of the datagridview.

Although you might also want to look into the EmptyDataText property of the DataGridView. It might save you showing a messagebox.




回答7:


This should do it:

dataGridView1.RowCount == 0


来源:https://stackoverflow.com/questions/972496/c-sharp-datagridview-check-if-empty

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!