【问题标题】:Fetching value from a datatable into datatable with where clause [closed]使用where子句将数据表中的值提取到数据表中[关闭]
【发布时间】:2018-05-24 06:20:34
【问题描述】:

我有一个datatabledtTable,里面有好几列,其中一列叫做Value强>。

Value 列的类型为int64,具有以下值:

12356 0 78 4 0

现在我想获取那些 Value 列中的值大于零的行。即,我想要上面示例中的以下行:

12356 78 4

我认为 linq 适合这种情况,任何解决方案都会有所帮助。

【问题讨论】:

  • 到目前为止你尝试过什么?
  • SELECT SUM(VALUE) AS 'myVal' FROM myTable WHERE VALUE > 0;?
  • @user5173426 为什么总和?
  • pffty 我以为他的意思是SUM那些价值观:3

标签: c# linq datatable


【解决方案1】:

类似这样的:

DataTable tblFiltered = dtTable.AsEnumerable()
                             .Where(r => r.Field<Int>("Value") > 0)
                             .CopyToDataTable();

其中 Value 是数据类型为 int 的列名。

顺便说一句,简单的谷歌搜索就可以解决您的查询。

OP:它是一个 64 位整数,可以为空:

 DataTable tblFiltered = dtTable.AsEnumerable()
                                 .Where(r => r.Field<Int64?>("Value") > 0)
                                 .CopyToDataTable();

【讨论】:

  • 对不起,数据类型是 int64,它给出了以下错误'不能将 DBNull.Value 转换为类型'System.Int64'。请使用可为空的类型。'
  • 由于我不确定您在问什么,根据我的理解,您尝试基于 Int64 字段进行查询,该字段也可以为 null 在这种情况下:DataTable tblFiltered = dtTable.AsEnumerable () .Where(r => r.Field("Value") > 0) .CopyToDataTable();但我建议您为数据库端的字段设置默认值
【解决方案2】:
var res = db.dtTable.Where(x=> x.Value > 0).ToList();

OP:不,不是数据库表,而是数据表。

DataTable filteredTable = dtTable.AsEnumerable().Where(row => row.Field<int>("Value") > 0).CopyToDataTable();

OP:抱歉,数据类型是 int64,它给出了以下错误“无法将 DBNull.Value 转换为类型“System.Int64”。请使用可为空的类型。'

DataTable filteredTable = dtTable.AsEnumerable().Where(row => row.Field<Int64?>("Value") > 0).CopyToDataTable();

【讨论】:

  • 我希望从原始数据表中获取数据表,不仅是值列
  • 对不起,数据类型是 int64,它给出了以下错误'不能将 DBNull.Value 转换为类型'System.Int64'。请使用可为空的类型。'
  • @JiteshDammani 编辑了答案!
  • '指定的演员表无效'错误:(
  • 它的工作是我将数据表数据类型更改为 int32。谢谢:)
【解决方案3】:

什么意思?用样本数据显示你的结果。目前,我是这样理解的。请试试这个:

  select t.* from table t where t.value > 0

【讨论】:

  • 如果您不清楚 OP 在问什么,请等待 OP 本人澄清。
  • 这是用于数据库表的,我想要它用于数据表
猜你喜欢
  • 2021-06-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-02-18
  • 1970-01-01
  • 2012-07-07
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多