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)),然后就直接调用返回的行或行集合来用,谢谢!