i am trying to check the datagridview cells for empty and null value... but i can not do it right...
for (int i = 0; i < dataGridView1.Rows.Count; i++)
{
if (!GridView1.Rows[GridView1.CurrentCell.RowIndex].IsNewRow)
{
foreach (DataGridViewCell cell in GridView1.Rows[GridView1.CurrentCell.RowIndex].Cells)
{
//here you must test for all and then return only if it is false
if (cell.Value == System.DBNull.Value)
{
return false;
}
}
}
if (String.IsNullOrEmpty(dataGridView1.Rows[i].Cells[3].Value as String))
{
MessageBox.Show("cell is empty");
return;
}
Add as String
, it works for me.
for (int i = 0; i < GV1.Rows.Count; i++)
{
if ((String)GV1.Rows[i].Cells[4].Value == null)
{
MessageBox.Show(" cell is empty");
return;
}
}
It's working fine.
I think you should check for null first
Convert.IsDBNull(dataGridView1.Rows[j].Cells[1].FormattedValue)
I would try like this:
foreach (DataGridViewRow rw in this.dataGridView1.Rows)
{
for (int i = 0; i < rw.Cells.Count; i++)
{
if (rw.Cells[i].Value == null || rw.Cells[i].Value == DBNull.Value || String.IsNullOrWhiteSpace(rw.Cells[i].Value.ToString())
{
// here is your message box...
}
}
}
Try this :
foreach (DataGridViewRow row in dataGridView.Rows)
{
IEnumerable<DataGridViewCell> cellsWithValusInRows = from DataGridViewCell cell in row.Cells
where string.IsNullOrEmpty((string)cell.Value)
select cell;
if (cellsWithValusInRows != null && cellsWithValusInRows.Any())
{
//Then cells with null or empty values where found
}
}
Then check for the collection if it is null or it has elements.
I hope this was helpful.