2014-03-14 41 views
0

刪除空行我想這個LINQ代碼從數據表中錯誤,當試圖從數據表中

NewDt = NewDt.Rows.Cast(Of DataRow)(). 
       Where(Function(row) Not row.ItemArray.All(Function(field) TypeOf field Is System.DBNull OrElse String.Compare(TryCast(field, String).Trim(), String.Empty) = 0)).CopyToDataTable() 

刪除空行,但它顯示錯誤

Lambda parameter 'row' hides a variable in an enclosing block, a previously defined range variable, or an implicitly declared variable in a query expression. 

任何想法?

回答

6

是 - 閱讀錯誤消息。您的方法中已經有一個名爲row的變量,因此您需要爲lambda表達式中的參數選擇一個不同的名稱。例如:

NewDt = NewDt.Rows.Cast(Of DataRow)(). 
       Where(Function(x) Not x.ItemArray.All(
        Function(field) TypeOf field Is System.DBNull _ 
         OrElse TryCast(field, String).Trim() = ""). 
       CopyToDataTable() 
相關問題