我有一个数据表,其中有1列具有少量具有空值的单元格。如何将它们转换为0?
我将此数据表绑定到数据网格视图,如果数据表中为null,则单元格为空。我需要在datagridview中显示0。
答案 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";
}
}
}