【发布时间】:2010-11-17 09:20:16
【问题描述】:
我有一个数据表,其中 1 列有几个单元格具有空值。如何将它们转换为 0?
我将此数据表绑定到数据网格视图,如果数据表中为 null,则单元格为空。我需要在 datagridview 中显示 0。
【问题讨论】:
标签: c# .net winforms datagridview
我有一个数据表,其中 1 列有几个单元格具有空值。如何将它们转换为 0?
我将此数据表绑定到数据网格视图,如果数据表中为 null,则单元格为空。我需要在 datagridview 中显示 0。
【问题讨论】:
标签: c# .net winforms datagridview
试试这个:
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";
}
}
}
【讨论】:
ToString() 的异常
编辑单元格模板并将 NullValue 设置为 0
【讨论】:
老实说,我会在绑定到数据网格之前清除它。我将执行一个 for 循环并将所有 DBNull 值更改为 0。它的代码快速、简单、易于理解。这样做的好处是实际上将 data 更改为 0,而不是像其他人建议的那样通过调整 dataGrid 来将其 查看 更改为 0。任何一种策略都有优点,只是取决于你想做什么。
试试这个:
for (int i = 0; i < dataTable.Rows.Count; i++)
{
DataRow row = dataTable.Rows[i];
if (row["ColumnA"] == DBNull.Value)
{
row["ColumnA"] = 0;
}
}
【讨论】:
我设置了 DataGridViewTextBox 列的属性。似乎按预期工作。
amountColumn.DefaultCellStyle.NullValue = "0";
【讨论】:
如果您从数据库中获取要显示的数据,那么您可以使用以下语法将 null 绑定到 0:
SELECT ISNULL(ColumnName, 0)
FROM TableName;
【讨论】:
这适用于所有具有空值或空值的行和列
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;
}
}
}
【讨论】: