С# DataGridView Проверьте, не пусто ли

У меня есть datagridview, который заполняется данными, возвращаемыми из запроса linq. Если запрос не возвращает результатов, я хочу отобразить сообщение. Есть ли способ проверить, не является ли datagridview пустым?

Привет

Ответ 1

Вы можете узнать, пуст ли он, проверив количество строк в DataGridView. Если myDataGridView.Rows.Count == 0, то ваш DataGridView пуст.

Ответ 2

Метод DGV.Rows.Count проверки того, является ли DGV пустым, не работает, если для параметра AllowUserToAddRows установлено значение true.

Вы должны отключить AllowUserToAddRows = false затем проверить наличие пустых элементов следующим образом:

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

Ответ 3

//это дает строки count = 1

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

//Итак, я изменил код, как показано ниже, и он работает для меня

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

Ответ 4

На основе результатов Linq вы можете скрыть представление datagridview и показать другой элемент управления (например, литерал или что-то еще), отображающее сообщение. Если вам нужно какое-то всплывающее окно с сообщениями, вам нужно бросить туда какой-нибудь JavaScript.

Ответ 5

Здесь много ответов содержит ссылку на Rows.Count. Обычно это не создает проблемы, и в большинстве случаев это будет излишним, чтобы делать то, что я собираюсь предложить.

Но по причинам, указанным в этом документе, может быть, не рекомендуется звонить Rows.Count, если DataGridView часто имеет много данных (>~ 5000 ячеек в профилировании памяти, которые я сделал для подтверждения этой статьи некоторое время назад).

Избегайте использования свойства Count System.Windows.Forms.DataGridViewSelectedCellCollection, чтобы определить количество выбранных ячеек. Вместо этого используйте DataGridView.GetCellCount и передать в DataGridViewElementStates.Selected. Аналогичным образом, используйте DataGridViewRowCollection.GetRowCount и DataGridViewColumnCollection.GetColumnCount для определения количество выбранных элементов, а не доступ к выбранной строке и коллекций столбцов.

В таких случаях вы можете использовать

myDataGridView1.Rows.GetRowCount(.) == 0

Если вы не имеете дело с быстрыми изменениями данных или огромным объемом данных (или, что еще хуже, с огромным количеством быстро меняющихся данных), просто используйте Rows.Count - это не так больно.

Ответ 6

Вы можете проверить свойство Rows.Count в представлении datagridview.

Хотя вы также можете просмотреть свойство EmptyDataText DataGridView. Это может спасти вас, показывая сообщение.

Ответ 7

Это должно сделать это:

dataGridView1.RowCount == 0