2010-01-14 30 views
0

我想查詢數據表(dt)並加載第二個dt與數據行的結果集合。很好 - 我們有CopyToDataTable()extn mthd就是爲了這個目的。但是它僅限於DataRows的枚舉,這意味着我不能返回任何其他東西,例如一個匿名類型的集合。 那麼 - 如何修改數據行中的值?LINQ to dataset:CopyToDataTable()

例如我有一個dt與3列:MyPK,VARCHAR01,VARCHAR02。

如果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。我想我需要修改數據行之前調用選擇運算符,但我不知道如何實現這一點。任何幫助/想法都會很愉快地收到。

在此先感謝,

Tamim。

回答