c#遍历dataGridView查找空值并放置“0”;代替

本文关键字:代替 dataGridView 遍历 查找 空值 | 更新日期: 2023-09-27 18:03:38

我想遍历在dataGridView中找到的所有值,检查该值是否为空,如果它为空,然后放置一个"0"值,使它不会为空。你能帮帮忙吗?

for (int i = 0; i < (dataGridView1.Rows.Count - 1); i++)
{
    for (int j = 0; j < (dataGridView1.Columns.Count - 1); j++)
    {
        if (dataGridView1.Rows[i].Cells[j].Value == null)
        {
            dataGridView1.Rows[i].Cells[j].Value.Equals("0");
        }
    }
}

谢谢!

c#遍历dataGridView查找空值并放置“0”;代替

使用说明:

if (dataGridView1.Rows[i].Cells[j].Value == System.DBNull.Value)
{
    dataGridView1.Rows[i].Cells[j].Value="0";
}

作为检查DataGridView中空值的条件。如果你需要,你也可以检查String.IsNullOrWhitespace

有两种方式可以显示"0"而不是null或空值:

第一个在将数据源绑定到DataGrid之前更新数据源

第二个使用下面的代码

foreach(DataGridViewRow row in dataGridView1.Rows)
            foreach(DataGridViewCell cell in row.Cells)
            {
                if(cell.Value == null ||  cell.Value.ToString() == string.Empty)
                {
                    cell.Value = "0";
                }
            }

试试这个:

 foreach (DataGridViewRow row in dataGridView1.Rows)
 {
      foreach (DataGridViewCell item in row.Cells)
      {
           if(item.Value == null || item.Value == DBNull.Value || String.IsNullOrWhiteSpace(item.Value.ToString()))
           {
               item.Value = "0";
           }
      }              
}

如果您正在使用MSSQL,那么您可以在绑定到网格之前检查查询中列的值。

SELECT ISNULL(column_name, 0)  from table_name

返回与check_expression相同的类型。如果作为check_expression提供了文字NULL,则返回replacement_value的数据类型。如果作为check_expression提供了文字NULL,并且没有提供replacement_value,则返回int。

https://msdn.microsoft.com/en-us/library/ms184325.aspx

第一解决方案:
如果从数据库中检索数据,那么在数据库端将null值替换为0,使用如下的Isnull函数
select Isnull(columnname,0) from表
第二个解决方案:
使用显示数据表格。RowDataBound事件
void GridView_RowDataBound(对象发送方,GridViewRowEventArgs e)
{
如果(e.Row。RowType == DataControlRowType.DataRow)
{
如果(e.Row。cell ["use cell id"]。Text == null)
{
e.Row。cell ["use cell id"]。Text = "0";
}
}
}