以文本方式查看主题

-  Foxtable(狐表)  (http://www.foxtable.com/bbs/index.asp)
--  专家坐堂  (http://www.foxtable.com/bbs/list.asp?boardid=2)
----  用SQLcommand生成的表,增加临时列,不可以用buildtree  (http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=158940)

--  作者:tld
--  发布时间:2020/12/8 4:54:00
--  用SQLcommand生成的表,增加临时列,不可以用buildtree

老师好。用SQLcommand 生成的 表,增加 年、月两临时列。执行tv.BuildTree("流水", "年|月") 时出错。

Dim cmd As new SQLCommand
Dim dt As DataTable
cmd.connectingname = “数据源”
cmd.CommandText = "sele t DISTINCT  委托编号 from {流水}"    ‘-----------委托编号的格式举例:20201208-01,
dt = cmd.ExecuteReader()

 

If dt.DataCols.Contains("年") = False Then
    dt.datacols.Add("年",Gettype(String))
End If
If dt.DataCols.Contains("月") = False Then
    dt.datacols.Add("月",Gettype(String))
End If


For Each dr As DataRow In dt.DataRows
    Dim s As String = dr("委托编号")
    dr("年") = left(s,4)
    dr("月") = s.SubString(4,2)
Next

Dim tv As WinForm.TreeView = e.Form.Controls("TreeView1")
tv.BuildTree(dt,"年|月")

出现如下错误:

 

.NET Framework 版本:4.0.30319.42000
Foxtable 版本:2020.5.29.8
错误所在事件:窗口,流水窗口,AfterLoad
详细错误信息:
对于不返回任何键列信息的 SelectCommand,不支持 UpdateCommand 的动态 SQL 生成。

请老师指点,谢谢老师!

[此贴子已经被作者于2020/12/8 5:30:43编辑过]

--  作者:有点蓝
--  发布时间:2020/12/8 8:48:00
--  
错误所在事件:窗口,流水窗口,AfterLoad

上面是AfterLoad的全部代码?如果不是,全部发上来看看
[此贴子已经被作者于2020/12/8 8:47:42编辑过]

--  作者:tld
--  发布时间:2020/12/8 14:40:00
--  
老师,下面是 afterload 的全部代码。其中,tb1是sqltable,selec t * from {流水} where [_identify] is null 

Dim tb1 As Table = Tables(e.Form.name & "_table1")
Dim dtb1 As DataTable = DataTables(e.Form.name & "_table1")

Dim cmd As new SQLCommand
Dim dt As DataTable
cmd.C
cmd.CommandText = "sele ct DISTINCT  委托编号 from {流水}"
dt = cmd.ExecuteReader(True)
If dt.DataCols.Contains("年") = False Then
    dt.datacols.Add("年",Gettype(String))
End If
If dt.DataCols.Contains("月") = False Then
    dt.datacols.Add("月",Gettype(String))
End If


For Each dr As DataRow In dt.DataRows
    Dim s As String = dr("委托编号")
    dr("年") = left(s,4)
    dr("月") = s.SubString(4,2)
Next

Dim tv As WinForm.TreeView = e.Form.Controls("TreeView1")
tv.BuildTree(dt,"年|月")

--  作者:有点蓝
--  发布时间:2020/12/8 14:58:00
--  
dt = cmd.ExecuteReader(True)

改为

dt = cmd.ExecuteReader()

1楼的代码是没有true的,给出来的代码都不是原装的,又如何解决问题!