我有一个DataTable,其中包含包含DbNull值的列。我想使用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列如何在cars2 DataTable中保存DbNull值?
答案 0 :(得分:1)
托马斯是正确的 - CopyToDataTable()
对DBNull
字段值没有任何特殊之处。但是,Field<T>
上的DataRow
扩展方法确实会为null
返回DBNull
- 您是否使用它来测试cars2
?