【问题标题】:LINQ query on a custom DataTable自定义 DataTable 上的 LINQ 查询
【发布时间】:2013-08-29 16:54:52
【问题描述】:
var query = from row in testDBDataSet.TestTable
                    where !row.Name.Equals("test")
                    select row;
TestDBDataSet.TestTableDataTable tempTable = 
   (TestDBDataSet.TestTableDataTable) query.CopyToDataTable<TestDBDataSet.TestTableRow>();
TestTableTableAdapter.Fill(tempTable);

运行此代码时,我收到错误 InvalidOperationException is unhandled - The source contains no DataRows.

那里肯定有符合该标准的数据,我做错了什么?我从 SQL Server 2008 R2 数据库中选择了一个表作为DataSourceDataGridView。我希望它只显示符合条件的某些行。

当我注释掉 where !row.Name.Equals("test") 时也会发生这种情况

【问题讨论】:

  • 所以你的查询是空的?
  • 我将首先使用 SQL Profiler 查看服务器上正在运行的内容,看看您是否可以从那里确定为什么没有返回行。
  • TestTableDataTable 吗?

标签: c# sql-server linq


【解决方案1】:

尽量不要在查询中使用 .Equals,而是坚持使用:

where row.Name != "test"

就个人而言,我在尝试将 Equal 与 Where 语句一起使用时遇到了各种问题。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-02-03
    • 2014-08-04
    • 1970-01-01
    • 2011-07-23
    • 1970-01-01
    相关资源
    最近更新 更多