在数据表中将所有DBNull值替换为0而不按代码遍历所有行的最佳方法是什么。我正在使用.NET 2.0框架。
我试试这个:
_data_table.Columns(DataColumName).Expression = String.Format("ISNULL({0},0)", DataColumName)
但是我得到'ArgumentException'由于表达式中的循环引用,无法设置Expression属性。 我想避免创建一个临时重复的列;)
答案 0 :(得分:1)
...没有按代码遍历所有行。
直言不讳;这是3行代码 tops :
string DataColumnName = ...;
DataColumn col = table.Columns[DataColumnName];
foreach (DataRow row in table.Rows) if (row.IsNull(col)) row[col] = 0;
如果你难以阅读,请少用。你目前要做的事情是不会起作用。接下来,您可以设置默认值。
如果这实际上是来自数据库,在一个基于集合的操作中在数据库中更新它:
update [table] set [column] = 0 where [column] is null