【问题标题】:error when tried to delete empty rows from datatable尝试从数据表中删除空行时出错
【发布时间】:2014-03-14 07:02:29
【问题描述】:

我尝试使用此 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.

有什么想法吗?

【问题讨论】:

    标签: asp.net vb.net linq


    【解决方案1】:

    是的 - 阅读错误消息。您的方法中已经有一个名为 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()
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-04-06
      • 1970-01-01
      • 1970-01-01
      • 2021-08-27
      • 1970-01-01
      相关资源
      最近更新 更多