为什么DataRow null值的这种取消引用不会抛出异常?

时间:2012-11-19 08:30:35

标签: c# ado.net

请您查看下面的代码并说明为什么当列值为null时此代码不会抛出异常?

DataTable table = new DataTable();
table.Columns.Add("PreviewHtml");

table.Rows.Add(new object[] { "aksdhaskldh" });
table.Rows.Add(new object[] { "129836 128o tagjk 1782 3" });
table.Rows.Add(new object[] { null });
table.Rows.Add(new object[] { "1278o36 " });


foreach (DataRow r in table.Rows)
{
     Console.WriteLine(r["PreviewHtml"].ToString());
}

1 个答案:

答案 0 :(得分:6)

这是因为DBNull.ToString返回一个空字符串。

默认情况下,DataColumn的AllowDBNull属性设置为true,否则您无法添加null值。

Null值转换为DBNull.ValueAutoIncrement列也会在null传递时递增。