将数据表中的空单元格转换为0

时间:2010-11-17 09:20:16

标签: c# .net winforms datagridview

我有一个数据表,其中有1列具有少量具有空值的单元格。如何将它们转换为0?

我将此数据表绑定到数据网格视图,如果数据表中为null,则单元格为空。我需要在datagridview中显示0。

6 个答案:

答案 0 :(得分:6)

编辑单元格模板并将NullValue设置为0

答案 1 :(得分:2)

老实说,在绑定到datagrid之前我会清除它。我执行一个for循环,只需将所有DBNull值更改为0.它快速,简单,易懂的代码。这样做的好处是可以将数据实际更改为0,而不是将其被查看的方式更改为0,正如其他人通过对dataGrid进行调整所建议的那样。这两种策略都有优点,只取决于你想做什么。

试试这个:

for (int i = 0; i < dataTable.Rows.Count; i++)
{
    DataRow row = dataTable.Rows[i];

    if (row["ColumnA"] == DBNull.Value)
    {
        row["ColumnA"] = 0;
    }
}

答案 2 :(得分:2)

我设置了DataGridViewTextBox列的属性.Seems按预期工作。

amountColumn.DefaultCellStyle.NullValue = "0"; 

答案 3 :(得分:1)

如果您从数据库中获取要显示的数据,则可以使用以下语法将null绑定到0:

SELECT ISNULL(ColumnName, 0)
FROM TableName;

答案 4 :(得分:1)

这适用于所有具有空值或空值的行和列

For i As Integer = 0 To output.Tables(0).Rows.Count - 1
        Dim row As DataRow = output.Tables(0).Rows(i)

        For j As Integer = 0 To output.Tables(0).Columns.Count - 1
            If row(j) Is DBNull.Value Then
                row(j) = 0
            End If
            If row(j).ToString.Length = 0 Then
                row(j) = 0
            End If
        Next

    Next

C#

for (int i = 0; i <= output.Tables[0].Rows.Count - 1; i++)
{
    DataRow row = output.Tables[0].Rows[i];
    for (int j = 0; j <= output.Tables[0].Columns.Count - 1; j++)
    {
        if (object.ReferenceEquals(row[j], DBNull.Value))
        {
            row[j] = 0;
        }
        if (row[j].ToString().Length == 0)
        {
            row[j] = 0;
        }
    }
}

答案 5 :(得分:0)

试试这个:

 for (int i = 0; i < dt.Rows.Count; i++)
                        {
                            for (int j = 0; j < dt.Columns.Count; j++)
                            {
                                if (string.IsNullOrEmpty(dt.Rows[i][j].ToString()))
                                {

                                    dt.Rows[i][j] = "0";
                                }
                            }
                        }