我想查询数据表(dt)并使用生成的数据行集合加载第二个dt。好的 - 我们有CopyToDataTable()extn mthd用于此目的。但是,它仅限于枚举DataRows,这意味着我无法返回任何其他内容,例如匿名类型的集合。 那么 - 如何修改数据行中的值?
例如,我有一个包含3列的dt:MyPK,VARCHAR01,VARCHAR02。
Foreach行,如果VARCHAR01或VARCHAR02的值为“”(即String.Empty)我想用NULL替换它(基础类型允许)。
我会这样做:
var MyCleanedDatarows =
from o in ds.Tables["dt"].AsEnumerable()
select new {
MyPK = o.Field<string>("MyPK"),
VARCHAR01 = (o.Field<string?>("VARCHAR01") == "" ? NULL : o.Field<string?>("VARCHAR01") ),
VARCHAR02 = (o.Field<string?>("VARCHAR02") == "" ? NULL : o.Field<string?>("VARCHAR02") )
};
...但是我不能使用CopyToDataTable()来返回dt。我想我需要在调用select运算符之前修改数据行,但我不知道如何实现它。任何帮助/想法都会得到很好的回复。
提前致谢,
塔米姆。