以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  后台数据的处理方式的疑问?  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=46319)

--  作者:scott518
--  发布时间:2014/2/20 21:29:00
--  后台数据的处理方式的疑问?
想从外部数据源的基础数据表“产品编码”中提取数据填充其他列(未加载表),有以下几咱方式
方式一、
Dim nms() As String = {"类别","品名","规格","图号","产品来源","计量单位"}
Dim cmd As New SQLCommand  \'从后台产品编码表取数填充
Dim dt As DataTable
cmd.ConnectionName = Mydata
cmd.CommandText = "SELECT 产品编码,类别,品名,规格,图号,产品来源,计量单位 From {产品编码} where [产品编码] = \'" & e.DataRow("产品编码") & "\'"
dt = cmd.ExecuteReader()
If dt.DataRows.count > 0 Then
    Dim dr As DataRow = dt.DataRows(0)
    For Each nm As String In nms
        e.DataRow(nm) = dr(nm)
    Next
End If
方式二、(2014版)
Dim nms() As String = {"类别","品名","规格","图号","产品来源","计量单位"}
Dim drs As List(of DataRow
drs = DataTables("订单").SQLSelect("产品编码 =  \'" & e.DataRow("产品编码") & "\'")
dim 
dr As DataRow = drs(0)
For Each nm As String In nms
        e.DataRow(nm) = dr(nm)
Next

请问上述两种方式哪种快?

如果有SQLFind就好了,直接从后台查找到一行数据出来就行,那样是否更快?
谢谢!


--  作者:有点甜
--  发布时间:2014/2/20 21:53:00
--  
两种方法都是一样的,只是第二种方便一点,帮你封装了sql语句

sqlfind相当于 select top 1 产品编码 from {订单}

sqlselect相当于 select 产品编码 from {订单}

--  作者:blackzhu
--  发布时间:2014/2/21 7:37:00
--  
新的测试版有SqlFind函数