以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  引用自动更新  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=23634)

--  作者:wilson
--  发布时间:2012/9/14 17:23:00
--  引用自动更新

If e.DataCol.Name = "产品编号" Then
Dim acmd As New SQLCommand
Dim adt As DataTable
Dim adr As DataRow = e.DataRow
acmd.CommandText = "SELECT 成本价 From {产品表} Where [产品编号] = \'" & adr("产品编号") & "\'Order By 日期 Desc"
adt = acmd.ExecuteReader
If adt.DataRows.Count > 0 Then
adr("单价") = adt.DataRows(0)("成本价")
Else
adr("单价") = Nothing
End If
End If

If e.DataCol.Name = "成本价" Then

DataTables("产品表").DataCols("单价").RaiseDataColChanged()

End If

 

用上述代码执行效力非常低

求助,解决方案或代码优化

谢谢!


--  作者:lin_hailun
--  发布时间:2012/9/14 17:51:00
--  
 
If e.DataCol.Name = "产品编号" Then
Dim acmd As New SQLCommand
\'Dim adt As DataTable
Dim adt As Double
Dim adr As DataRow = e.DataRow
acmd.CommandText = "SELECT 成本价 From {产品表} Where [产品编号] = \'" & adr("产品编号") & "\'Order By 日期 Desc"
\'adt = acmd.ExecuteReader
adt = acmd.ExecuteScalar()
\'If adt.DataRows.Count > 0 Then
If adt <> 0 Then
\'adr("单价") = adt.DataRows(0)("成本价")
adr("单价") = adt
Else
adr("单价") = Nothing
End If
End If

If e.DataCol.Name = "成本价" Then
DataTables("产品表").DataCols("单价").RaiseDataColChanged("[产品编号] = \'" & e.DataRow("产品编号") & "\'")
End If
[此贴子已经被作者于2012-9-14 17:51:24编辑过]

--  作者:lin_hailun
--  发布时间:2012/9/14 17:52:00
--  
 还有就是,最好说一下你的用意。
--  作者:jspta
--  发布时间:2012/9/14 18:07:00
--  

acmd.CommandText ="SELECT top 1 成本价 From {产品表} Where [产品编号] = \'" & adr("产品编号") & "\'Order By 日期 Desc"

dim int as integer =  acmd.ExecuteScalar


 


--  作者:wilson
--  发布时间:2012/9/14 22:21:00
--  
非常感谢各位的帮助,现在快了很多