以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- sql查询语句可以直接返回一行或多行集合吗? (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=51017) |
-- 作者:zpx_2012 -- 发布时间:2014/5/17 11:59:00 -- sql查询语句可以直接返回一行或多行集合吗? 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 -- 发布时间:2014/5/17 12:01:00 -- 不行,只能返回一个表. 表和行集合有区别吗? 差不多的啊. |
-- 作者:zpx_2012 -- 发布时间:2014/5/17 12:18:00 -- 主要就是想能象 dr = cmd.ExecuteReader() 类似这样就直接返回一行多方便。 |
-- 作者:Bin -- 发布时间:2014/5/17 12:23:00 -- dt.DataRows 就多了个 datarows 而已 你要返回集合一样要声明集合,只不过把声明集合变成声明表而已.
|