以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  关于追加数据的问题  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=20969)

--  作者:yankunhao
--  发布时间:2012/6/25 18:05:00
--  关于追加数据的问题


图片点击可在新窗口打开查看此主题相关图片如下:d.jpg
图片点击可在新窗口打开查看

 

Case "part_no"
        Dim cmd As New SQLCommand
        Dim cmd1 As new SQLCommand
        Dim dt As DataTable
        Dim dt1 As DataTable
        cmd.C
        cmd.CommandText = "SELECT part_no,wf_cp_gz,wf_cp_ggrem,cu_part_no,wf_bz_fs From {obas_part_spec} where part_no = \'" & e.DataRow("part_no") &"\'"
        cmd1.C
        cmd1.CommandText = "SELECT part_no,sal_unit_no From {obas_part1} where part_no = \'" & e.DataRow("part_no") &"\'"
        dt = cmd.ExecuteReader()
        dt1 = cmd1.ExecuteReader()
        Dim dr As DataRow
        dr = dt.Find("part_no = \'" & e.DataRow("part_no") & "\'")
        If dr IsNot Nothing \'如果找到, 则设置各列内容
            e.DataRow("国家")= dr("wf_cp_gz")
            e.DataRow("客户编码")= dr("cu_part_no")
            e.DataRow("rem")= dr("wf_cp_ggrem")
            e.DataRow("define1")= dr("wf_bz_fs")
           
        Else
            e.DataRow("国家")= Nothing
            e.DataRow("客户编码")= Nothing
           
        End If
        Dim dr1 As DataRow =dt1.DataRows(0)
        e.DataRow("sal_unit")= dr1("sal_unit_no")
        Dim dr2 As DataRow=DataTables("料品资料查询表").Find("part_no = \'" & e.DataRow("part_no") & "\'")
        If dr2 IsNot Nothing Then
            Return
        Else
            Dim s As String =e.DataRow("part_no")
            Dim Filter As String = "[part_no] = \'" & s & "\'"
            DataTables("料品资料查询表").AppendLoad(Filter, False)
        End If
End Select


--  作者:yankunhao
--  发布时间:2012/6/25 18:06:00
--  
请问这个应该是什么原因呢?
--  作者:狐狸爸爸
--  发布时间:2012/6/25 18:12:00
--  
合成的select语句有误,用output.show或者MessageBox.Show显示一下你合成的select语句,看看错在哪里。
--  作者:yankunhao
--  发布时间:2012/6/26 9:37:00
--  

我试过不是select语句有误,而是

Dim dr2 As DataRow=DataTables("料品资料查询表").Find("part_no = \'" & e.DataRow("part_no") & "\'")
        If dr2 IsNot Nothing Then
            Return
        Else
            Dim s As String =e.DataRow("part_no")
            Dim Filter As String = "[part_no] = \'" & s & "\'"
            DataTables("料品资料查询表").AppendLoad(Filter, False)
        End If
这里的语句有问题,真的不明白是什么原因.


--  作者:狐狸爸爸
--  发布时间:2012/6/26 9:56:00
--  

还是Select语句有无,AppendLoad使用Select语句来追载数据。

检查你合成的Filter语句:

 

Dim dr2 As DataRow=DataTables("料品资料查询表").Find("part_no = \'" & e.DataRow("part_no") & "\'")
If dr2 IsNot Nothing Then
    Return
Else
    Dim s As String =e.DataRow("part_no")
    Dim Filter As String = "[part_no] = \'" & s & "\'"
    messagebox.Show(filter)
    DataTables("料品资料查询表").AppendLoad(Filter, False)
End If

 

注意如果你的part_no是数值型,那么

Dim Filter As String = "[part_no] = \'" & s & "\'"

应该改为:

Dim Filter As String = "[part_no] = " & s

 


--  作者:yankunhao
--  发布时间:2012/6/26 10:02:00
--  

我在"料品资料查询表"中建立一个窗口并加一个按钮,按钮的执行代码如下,也一样出错啊

DataTables("料品资料查询表").AppendLoad("[part_no] = \'O0000000000000023901\'", False)


--  作者:yankunhao
--  发布时间:2012/6/26 10:03:00
--  
我的part_no是字符型的
--  作者:狐狸爸爸
--  发布时间:2012/6/26 10:06:00
--  

我测试没有问题,搞不定的话,你就用这段代码做个简单的例子发上来.


--  作者:yankunhao
--  发布时间:2012/6/26 10:19:00
--  

请问我的那个料品资料查询表的生成器是如下语句,请问有没关系的呢?现在比时间比较紧,能否用qq 远程帮我看看呢?

Select  {obas_part1}.part_no,part_attr,{obas_part1}.part_type,unit_no,item_no,part_name,part_spec,type_name,base_code,code_type,base_name,parent_no,{obas_part}.act_sw From (({obas_part1} Inner JOIN {obas_part} ON {obas_part}.[part_no] = {obas_part1}.[part_no]) Inner JOIN {obas_part_type} ON {obas_part_type}.[type_no] = {obas_part1}.[part_type]) Inner JOIN {obas_base_code} ON {obas_base_code}.[base_code] = {obas_part1}.[unit_no] Where {obas_base_code}.[code_type] = \'115\' and {obas_part1}.[part_type] like \'1%\' Order By {obas_part}.item_no


--  作者:狐狸爸爸
--  发布时间:2012/6/26 10:23:00
--  
查询表不能用AppendLoad,直接用Load或者Fill
[此贴子已经被作者于2012-6-26 10:24:18编辑过]