以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [求助]窗口table动态增加的列写入时无法识别报错  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=46316)

--  作者:lyq
--  发布时间:2014/2/20 19:49:00
--  [求助]窗口table动态增加的列写入时无法识别报错

        Tables("装配级码_table1").DataSource=dt
        For i As Integer=1 To jsmax
            DataTables("装配级码_table1").DataCols.Add("js" & i, Gettype(String),6,"",i & "级")
        Next
        Tables("装配级码_table1").AutoSizeCols
        For Each dc As DataCol In DataTables("装配级码_table1").datacols
            If dc.name.contains("js") Then
                For Each r1 As Row In Tables("装配级码_table1").Rows
                    cmd.commandtext="select distinct 装配级码 from 装配 where 编号=\'" & r1("编号") & "\' and 物料=\'" & r1("物料") & "\' and 级数=\'" & dc.name.replace("js","") & "\'"
                    r1(dc.name)=cmd.executescalar()
                Next
            End If
        Next

 

 


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

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

--  作者:有点甜
--  发布时间:2014/2/20 19:56:00
--  
 试试这样



Tables("装配级码_table1").DataSource=dt
        For i As Integer=1 To jsmax
            Tables("装配级码_table1").DataTable.DataCols.Add("js" & i, Gettype(String),6,"",i & "级")
        Next
        Tables("装配级码_table1").AutoSizeCols
        For Each c As Col In Tables("装配级码_table1").Cols
            If c.name.contains("js") Then
                For Each r1 As Row In Tables("装配级码_table1").Rows
                    cmd.commandtext="select distinct 装配级码 from 装配 where 编号=\'" & r1("编号") & "\' and 物料=\'" & r1("物料") & "\' and 级数=\'" & dc.name.replace("js","") & "\'"
                    r1(dc.name)=cmd.executescalar()
                Next
            End If
        Next

--  作者:lyq
--  发布时间:2014/2/20 20:02:00
--  
以下是引用有点甜在2014-2-20 19:56:00的发言:
 试试这样



Tables("装配级码_table1").DataSource=dt
        For i As Integer=1 To jsmax
            Tables("装配级码_table1").DataTable.DataCols.Add("js" & i, Gettype(String),6,"",i & "级")
        Next
        Tables("装配级码_table1").AutoSizeCols
        For Each c As Col In Tables("装配级码_table1").Cols
            If c.name.contains("js") Then
                For Each r1 As Row In Tables("装配级码_table1").Rows
                    cmd.commandtext="select distinct 装配级码 from 装配 where 编号=\'" & r1("编号") & "\' and 物料=\'" & r1("物料") & "\' and 级数=\'" & dc.name.replace("js","") & "\'"
                    r1(dc.name)=cmd.executescalar()
                Next
            End If
        Next

将遍历集中的datacol改为col还是报同样的错误


--  作者:lyq
--  发布时间:2014/2/20 20:04:00
--  

msgbox(dc.name)  \'显示正确

r1(dc.name)=cmd.executescalar()     ’运行此代码就会报错,取消此代码后没有报错


--  作者:有点甜
--  发布时间:2014/2/20 20:27:00
--  
 提示出错,也是xxx列不存在吗?

没理由,你这样试试.

Tables("装配级码_table1").DataSource=dt
For i As Integer=1 To jsmax
    Tables("装配级码_table1").DataTable.DataCols.Add("js" & i, Gettype(String),6,"",i & "级")
Next
Tables("装配级码_table1").AutoSizeCols
For Each dc As DataCol In Tables("装配级码_table1").DataTable.DataCols
    If dc.name.Contains("js") Then
        For Each r1 As Row In Tables("装配级码_table1").Rows
            cmd.commandtext="select distinct 装配级码 from 装配 where 编号=\'" & r1("编号") & "\' and 物料=\'" & r1("物料") & "\' and 级数=\'" & dc.name.replace("js","") & "\'"
            r1(dc.name)=cmd.executescalar()
        Next
    End If
Next

--  作者:lyq
--  发布时间:2014/2/20 20:46:00
--  
以下是引用有点甜在2014-2-20 20:27:00的发言:
 提示出错,也是xxx列不存在吗?

没理由,你这样试试.

Tables("装配级码_table1").DataSource=dt
For i As Integer=1 To jsmax
    Tables("装配级码_table1").DataTable.DataCols.Add("js" & i, Gettype(String),6,"",i & "级")
Next
Tables("装配级码_table1").AutoSizeCols
For Each dc As DataCol In Tables("装配级码_table1").DataTable.DataCols
    If dc.name.Contains("js") Then
        For Each r1 As Row In Tables("装配级码_table1").Rows
            cmd.commandtext="select distinct 装配级码 from 装配 where 编号=\'" & r1("编号") & "\' and 物料=\'" & r1("物料") & "\' and 级数=\'" & dc.name.replace("js","") & "\'"
            r1(dc.name)=cmd.executescalar()
        Next
    End If
Next

报同样的错误,按道理不应该报错呀,郁闷!!!


--  作者:lyq
--  发布时间:2014/2/20 20:48:00
--  

郁闷!!!

狐狸爸爸出来解决下,

是程bug吗


--  作者:逛逛
--  发布时间:2014/2/20 20:59:00
--  

      试试这样

 

        For i As Integer=1 To jsmax
            dt.DataCols.Add("js" & i, Gettype(String),6,"",i & "级")
        Next

        Tables("装配级码_table1").DataSource=dt


--  作者:有点甜
--  发布时间:2014/2/20 21:01:00
--  
 不会是这段代码的错,你请检测其他代码,或者做一个例子发上来。

 我测试代码没有错

--  作者:逛逛
--  发布时间:2014/2/20 21:03:00
--  
以下是引用有点甜在2014-2-20 21:01:00的发言:
 不会是这段代码的错,你请检测其他代码,或者做一个例子发上来。

 我测试代码没有错

他的dt如果是SQL查询得来的,要绑定前增加列。