Foxtable(狐表)用户栏目专家坐堂 → sql查询语句可以直接返回一行或多行集合吗?


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

主题:sql查询语句可以直接返回一行或多行集合吗?

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


加好友 发短信
等级:四尾狐 帖子:976 积分:8527 威望:0 精华:0 注册:2012/2/9 16:35:00
sql查询语句可以直接返回一行或多行集合吗?  发帖心情 Post By:2014/5/17 11:59:00 [只看该作者]

Dim dr As DataRow
Dim cmd As New SQLCommand
cmd.ConnectionName = Mydata
Dim dt As DataTable
Dim flt,str As String
flt = "生产单号 = '" & e.DataRow("需求单号") & "' and 加工类别 = '外协加工' And 工序名称 = '" & e.DataRow("加工内容") & "'"
cmd.CommandText = "Select 生产单号,生产数量,累计加工 from 生产明细 a inner join (select 需求单号,加工内容,sum(数量) as 累计加工 from 外协加工明细 group by 需求单号,加工内容) c on a.生产单号 = c.需求单号 where " & flt
dt = cmd.ExecuteReader()
If dt.DataRows.count > 0 Then
    dr = dt.DataRows(0) 
    If dr("累计出库") + V > dr("生产数量") * 1.1 Then
        MessageBox.Show("累计外协数量已经大于生产数量的10%,不能保存!")
        e.Cancel = True
    End If
End If

如上代码,每次都要查询返回一个表dt,然后再定位到其第一行,感觉很繁琐,请问select的查询语句能否直接返回一行或者行集(list(of datarow)),然后就直接调用返回的行或行集合来用,谢谢!


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


加好友 发短信
等级:贵宾 帖子:35433 积分:178524 威望:0 精华:3 注册:2013/3/30 16:36:00
  发帖心情 Post By:2014/5/17 12:01:00 [只看该作者]

不行,只能返回一个表.  表和行集合有区别吗? 差不多的啊.

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


加好友 发短信
等级:四尾狐 帖子:976 积分:8527 威望:0 精华:0 注册:2012/2/9 16:35:00
  发帖心情 Post By:2014/5/17 12:18:00 [只看该作者]

主要就是想能象 dr = cmd.ExecuteReader() 类似这样就直接返回一行多方便。

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


加好友 发短信
等级:贵宾 帖子:35433 积分:178524 威望:0 精华:3 注册:2013/3/30 16:36:00
  发帖心情 Post By:2014/5/17 12:23:00 [只看该作者]

dt.DataRows 就多了个 datarows 而已

你要返回集合一样要声明集合,只不过把声明集合变成声明表而已.

 回到顶部