Foxtable(狐表)用户栏目专家坐堂 → 数据分析 求助


  共有2559人关注过本帖树形打印复制链接

主题:数据分析 求助

帅哥哟,离线,有人找我吗?
凡夫俗子
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:一尾狐 帖子:457 积分:3523 威望:0 精华:0 注册:2016/1/22 18:17:00
数据分析 求助  发帖心情 Post By:2016/2/25 20:26:00 [只看该作者]

Dim cmd As New SQLCommand
cmd.C
cmd.CommandText="sel ect FItemID,FStockID,sum(FQty) as 数量 from ICInventory group by FItemID,FStockID HAVING sum(FQty) > 0 and FStockID < 739"
Dim dt As DataTable = cmd.ExecuteReader

对K3即时库存进行条件取数后获得了一个 数据表 dt

如何 对dt表的 FItemID 进行 数量求和 并将数据写入 tb 表中。

"sel ect FItemID,FStockID,sum(FQty) as 数量 from ICInventory group by FItemID,FStockID HAVING sum(FQty) > 0 and FStockID < 739"
这个语句能修改一下 直接对 FItemID 的 FQty 求和不,条件是 FStockID < 739 即对原数据表中的部份数据进行分组求和。

 回到顶部
帅哥哟,离线,有人找我吗?
大红袍
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2016/2/25 20:32:00 [只看该作者]

这个意思?

 

cmd.CommandText="sel ect FItemID, sum(FQty) as 数量 from ICInventory Where FStockID < 739 group by FItemID HAVING sum(FQty) > 0"


 回到顶部
帅哥哟,离线,有人找我吗?
凡夫俗子
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:一尾狐 帖子:457 积分:3523 威望:0 精华:0 注册:2016/1/22 18:17:00
  发帖心情 Post By:2016/2/25 21:01:00 [只看该作者]

Dim tb As Table = e.Form.Controls("Table1").Table
Dim st rSQLcmd As String = "sel ect FItemID, sum(FQty) as 数量 from ICInventory Where FStockID < 739 group by FItemID HAVING sum(FQty) > 0"
tb.Fill(strSQLcmd,"K3SJ", False)

'以上代码运行正确


Dim cmd1 As New SQLCommand
cmd1 .Co nnec tionNa me = "K3SJ"
cmd1.Com mandText=strSQLcmd
Dim dt1 As DataTable = cmd1.ExecuteScalar(False)

'以上代码报错
'.NET Framework 版本:2.0.50727.5485
'Foxtable 版本:2015.12.22.1
'错误所在事件:窗口,即时库存,Button2,Click
'详细错误信息:
'无法将类型为"System.Int32"的对象强制转换为类型"Foxtable.DataTable".


代码哪里错了,原因在哪里
[此贴子已经被作者于2016/2/25 21:01:39编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
大红袍
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2016/2/25 21:04:00 [只看该作者]

ExecuteScalar 得到的,不是datatable,而是一个具体的值。

 

Dim a As String = cmd1.ExecuteScalar

 

要得到datatable,要用 ExecuteReader


 回到顶部