以文本方式查看主题

-  Foxtable(狐表)  (http://www.foxtable.com/bbs/index.asp)
--  专家坐堂  (http://www.foxtable.com/bbs/list.asp?boardid=2)
----  加载无反应的问题  (http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=42184)

--  作者:owenlyx
--  发布时间:2013/11/6 3:54:00
--  加载无反应的问题
外部数据表中有一个条码库信息表,有3w多行数据,所以在系统启动时此表并未加载任何数据,以下是代码,想实现的功能是输入条码号后,相对应的品牌,产品类型等相符合的字段可以自动填写到销售表对应字段中,但用以下代码并无任何反应,求大神们帮忙看一看,谢谢!

If e.Table.Current Is Nothing Then \'如果Current为Nothing
    Return \'则返回
End If

Dim cmd As New SQLCommand
Dim dt As DataTable
cmd.C
cmd.CommandText = "SELECT[_identify],品牌,产品类型,尺码,颜色,挂牌价,款号 from {条码库信息} where 条码号 = \'" & e.Table.current("条码号") & "\'"
dt = cmd.ExecuteReader()

Dim dr As DataRow
dr = DataTables("条码库信息").Find("[条码号] = \'" & e.Table.Current("条码号") & "\'")
Dim r As Row = Tables("销售表").current 
If dr IsNot Nothing Then

   r("条码号") = dr("条码号")
   r("品牌") = dr("品牌")
   r("产品类型") = dr("产品类型") 
   r("尺码")=dr("尺码")
   r("颜色")=dr("颜色")
   r("挂牌价")=dr("挂牌价")
   r("款号") = dr("款号")
End If

--  作者:owenlyx
--  发布时间:2013/11/6 3:58:00
--  
刚有一行没贴完整,重贴如下
Dim cmd As New SQLCommand
Dim dt As DataTable
cmd.C
cmd.CommandText = "SELECT[_identify],品牌,产品类型,尺码,颜色,挂牌价,款号 from {条码库信息} where 条码号 = \'" & e.Table.current("条码号") & "\'"
dt = cmd.ExecuteReader()

Dim dr As DataRow
dr = DataTables("条码库信息").Find("[条码号] = \'" & e.Table.Current("条码号") & "\'")
Dim r As Row = Tables("销售表").current 
If dr IsNot Nothing Then

   r("条码号") = dr("条码号")
   r("品牌") = dr("品牌")
   r("产品类型") = dr("产品类型") 
   r("尺码")=dr("尺码")
   r("颜色")=dr("颜色")
   r("挂牌价")=dr("挂牌价")
   r("款号") = dr("款号")
End If


--  作者:逛逛
--  发布时间:2013/11/6 8:06:00
--  
以下是引用owenlyx在2013-11-6 3:58:00的发言:
刚有一行没贴完整,重贴如下
Dim cmd As New SQLCommand
Dim dt As DataTable
cmd.C
cmd.CommandText = "SELECT[_identify],品牌,产品类型,尺码,颜色,挂牌价,款号 from {条码库信息} where 条码号 = \'" & e.Table.current("条码号") & "\'"
dt = cmd.ExecuteReader()

Dim dr As DataRow
dr = DataTables("条码库信息").Find("[条码号] = \'" & e.Table.Current("条码号") & "\'")
Dim r As Row = Tables("销售表").current 
If dr IsNot Nothing Then

   r("条码号") = dr("条码号")
   r("品牌") = dr("品牌")
   r("产品类型") = dr("产品类型") 
   r("尺码")=dr("尺码")
   r("颜色")=dr("颜色")
   r("挂牌价")=dr("挂牌价")
   r("款号") = dr("款号")
End If

你返回的dt 和你的dr 没有任何联系,应该赋值

 

 


--  作者:狐狸爸爸
--  发布时间:2013/11/6 8:22:00
--  

正常应该这样的:

 

....
cmd.CommandText = "SELECT[_identify],品牌,产品类型,尺码,颜色,挂牌价,款号 from {条码库信息} where 条码号 = \'" & e.Table.current("条码号") & "\'"
dt = cmd.ExecuteReader()
if dt.DataRows.Count > 0 then
    Dim dr As DataRow = dt.datarows(0)
    Dim r As Row = Tables("销售表").current
    r("条码号") = dr("条码号")
    r("品牌") = dr("品牌")
    r("产品类型") = dr("产品类型")
    r("尺码")=dr("尺码")
    r("颜色")=dr("颜色")
    r("挂牌价")=dr("挂牌价")
    r("款号") = dr("款号")
end if