【发布时间】:2009-09-04 12:55:40
【问题描述】:
我有一个包含 DbNull 值的列的 DataTable。我想使用 Linq 并输出一个新的 DataTable,但我希望保留 DbNull 值。这是一个例子:
DataTable dt = new DataTable();
dt.Columns.Add(new DataColumn("C1",System.Type.GetType("System.String")));
dt.Columns.Add(new DataColumn("C2",System.Type.GetType("System.String")));
DataRow row;
row = dt.NewRow();
row["C1"] = "Hello";
row["C2"] = "World";
dt.Rows.Add(row);
row = dt.NewRow();
row["C1"] = DBNull.Value;
row["C2"] = "World";
dt.Rows.Add(row);
var cars1 = from car in dt.AsEnumerable()
where car.Field<String>("C2") == "World"
select car;
DataTable cars2 = cars1.CopyToDataTable();
第二行C1列的DbNull值如何保存在cars2 DataTable中?
【问题讨论】:
-
它被持久化了……试试看,你会看到cars2第二行的“C1”仍然是DBNull.Value
-
顺便说一句,你不需要写
System.Type.GetType("System.String"):你可以写typeof(String)
标签: linq