以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [原创]SQLCommand  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=67985)

--  作者:L88919138
--  发布时间:2015/5/7 15:52:00
--  [原创]SQLCommand

  想从SQL外部数据源里采购付款表找出与存货档案当前记录相同的存货名称,并将里面单价和余额取值到存货档案中相对应列去,下面代码虽可正确执行,只是效率太慢,如何优化,请大师们帮忙指点下,谢谢。


--  作者:Bin
--  发布时间:2015/5/7 15:53:00
--  
代码发上来
--  作者:L88919138
--  发布时间:2015/5/7 15:54:00
--  

发不上来,一直提示错误。

 


--  作者:L88919138
--  发布时间:2015/5/7 15:55:00
--  
  • ??????????
  • 请仔细阅读论坛帮助文件,确保您有相应的操作权限。

  • --  作者:Bin
    --  发布时间:2015/5/7 15:56:00
    --  
    SQL语句中的  F ROM 要带空格才能发
    --  作者:L88919138
    --  发布时间:2015/5/7 15:57:00
    --  
     下载信息  [文件大小:   下载次数: ]
    图片点击可在新窗口打开查看点击浏览该文件:想从sql外部数据源里.zip

    把代码以压缩文件打包下传。
    --  作者:L88919138
    --  发布时间:2015/5/7 16:02:00
    --  
     

    想从SQL外部数据源里采购付款表找出与存货档案当前记录相同的存货名称,并将里面单价和余额取值到存货档案中相对应列去,下面代码虽可正确执行,只是效率太慢,如何优化,请大师们帮忙指点下,谢谢。

    Dim cmd As new  SQLCommand
    cmd.cFONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana">鲜迪数据库
    "
    For Each dr As DataRow In DataTables("
    存货档案").DataRows
        cmd.CommandText = "Select top 1
    单价 F rom  {采购付款表}  Where 商品名称 = \'" & dr("存货名称") & "\' and 单价 is not null order by [_sortkey] desc "
        If cmd.CommandText IsNot Nothing
            dr("
    参考单价") = cmd.executescalar
        Else
            dr("
    参考单价") = 0
        End If   
        cmd.CommandText = "Select top 1
    余额 F rom  {采购付款表}  Where 商品名称 = \'" & dr("存货名称") & "\' and 余额 is not null order by [_sortkey] desc "
        If cmd.CommandText IsNot Nothing
            dr("
    账面数量") = cmd.executescalar
        Else
            dr("
    账面数量") = 0
        End If  
    Next


    --  作者:Bin
    --  发布时间:2015/5/7 16:02:00
    --  
     你这样.还不如次SQLcommand 把表查询到DT里. 然后再用DT.FIND找到对应的行赋值
    这也速度更快.不用查询N次数据库

    --  作者:大红袍
    --  发布时间:2015/5/7 16:02:00
    --  

     一次性取出整个表,然后用find的方式,不要重复使用sqlcomman

     


    --  作者:L88919138
    --  发布时间:2015/5/7 16:04:00
    --  
    还真是
    SQL语句中的  F ROM 要带空格才能发
     

    前就一直试发不上来,以为我没权限发了,弄个压缩包来发。