.net 中对datatable的数据汇总

JERRY_LIU 2019-06-27 10:52:03
从SQL拿了一堆数据,因为是多个查询产生的,所以手动datatable.rows.add添加到同一个表中。最后要对数据进行汇总,.net中有没有办法操作?
或者在SQL里汇总,但是我是多个条件的查询,比如按PO查询,一次查询上百个PO,然后再汇总。把上百个PO一次性传给SQL后,SQL有什么办法能查询吗?
比如有PO“AAA”,“BBB”,“CCC”
我试过select * from table where po in ("AAA", "BBB", "CCC")是可以的,但是如果定义变量@searchPO= "AAA,BBB,CCC"
select * from table where po in (@searchPO) 是不可以的。
...全文
301 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
wanghui0380 2019-06-27
  • 打赏
  • 举报
回复
datatable 我们是可以加过滤条件,这个你百度把(因为现在用dt比较少,这种玩意我就不特别记忆了) 至于sql语句,当然也可以,把东西边一下就成 select * from table where ','+@searchPO +',' like ','+po+',' 就可以了 嘿嘿,凭啥只能是 字段 like 条件 ,不能是 条件 like 字段 有凭啥是 条件 like 字段 不能是 xxxxx存储过程(条件) like yyyy存储过程(字段) 同理 凭啥不能是 select * from table where po in (xxxx存储过程( @searchPO)) ---------- xxxx存储过程可以返回一个临时表
Dear200892 2019-06-27
  • 打赏
  • 举报
回复
Declare @str varchar(50) Set @str='aa,bb,cc' Execute('select * from t where name in ('+@str+')')
正怒月神 2019-06-27
  • 打赏
  • 举报
回复
或者你可以在sql自定义一个split方法,分割传递进去的字符串
正怒月神 2019-06-27
  • 打赏
  • 举报
回复
传递数组拼接就好了。 因为你直接传递@searchPO= "AAA,BBB,CCC" sql语句是 where po in ("AAA,BBB, CCC") 而你要的效果是where po in ("AAA", "BBB", "CCC")
ManBOyyy 2019-06-27
  • 打赏
  • 举报
回复
你應該這樣,,,,@searchPO= "'AAA','BBB','CCC'"
Dear200892 2019-06-27
  • 打赏
  • 举报
回复
你把这句sql打印一下就知道问题在那了 Print 字符串

110,539

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧