2009-06-09 90 views
9

Tengo una vista de cuadro de datos que se llena con los datos devueltos de una consulta de linq. Si la consulta no arroja ningún resultado, quiero mostrar un cuadro de mensaje. ¿Hay alguna forma de comprobar si la vista de tabla de datos está vacía?C# DataGridView Comprobar si está vacío

Saludos

+0

¿Esto es ASP .Net o Windows Forms? – SLaks

Respuesta

23

Puede averiguar si está vacío comprobando el número de filas en el DataGridView. Si es myDataGridView.Rows.Count == 0, su DataGridView está vacía.

0

Puede verificar la propiedad Rows.Count del datagridview.

Aunque es posible que también desee examinar la propiedad EmptyDataText de DataGridView. Puede salvarte mostrando un cuadro de mensaje.

1

Según los resultados de Linq, puede ocultar la vista de cuadrícula de datos y mostrar algún otro control (como un literal o algo similar) que muestre el mensaje. Si desea algún tipo de ventana emergente de mensaje, tendrá que arrojar algo de JavaScript allí.

+0

no puede ver por qué jscript sería necesario en absoluto, alguna vez – Goober

1

Muchas respuestas aquí tienen una referencia a Rows.Count. Normalmente, eso no representa un problema y en la mayoría de los casos sería excesivo hacer lo que estoy por sugerir.

Pero por las razones mencionadas en this document puede que no sea una buena idea llamar Rows.Count si el DataGridView con frecuencia tiene una gran cantidad de datos (>~ 5000 células en la elaboración de perfiles de memoria que hice para validar que el artículo hace un tiempo).

Evitar el uso de la propiedad de la Count System.Windows.Forms.DataGridViewSelectedCellCollection para determinar el número de celdas seleccionadas. En su lugar, use el método DataGridView.GetCellCount y pase el valor DataGridViewElementStates.Selected. De forma similar, utilice los métodos DataGridViewRowCollection.GetRowCount y DataGridViewColumnCollection.GetColumnCount para determinar el número de elementos seleccionados, en lugar de acceder a la fila seleccionada y colecciones de columnas.

En tales casos, puede utilizar

myDataGridView1.Rows.GetRowCount(.) == 0 

Si no se trata de datos que cambian rápidamente o una enorme cantidad de datos (o peor aún, una enorme cantidad de datos que cambian rápidamente) a continuación, sólo tiene que utilizar filas. Cuenta - no duele mucho.

0

Esto debe hacerlo:

dataGridView1.RowCount == 0 
2

El método para comprobar si está vacía DGV no funciona si la opción AllowUserToAddRows se establece en true DGV.Rows.Count.

debe desactivar AllowUserToAddRows = false continuación, comprobar si hay vacíos como esto:

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

// Esto da filas count = 1

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

// así que finalmente modifieded código de la siguiente manera y funciona para mí

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