以文本方式查看主题

-  Foxtable(狐表)  (http://www.foxtable.com/bbs/index.asp)
--  专家坐堂  (http://www.foxtable.com/bbs/list.asp?boardid=2)
----  用SQL生成窗口中的table能否再增加临时列?(已解决)  (http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=27648)

--  作者:zpx_2012
--  发布时间:2013/1/6 23:40:00
--  用SQL生成窗口中的table能否再增加临时列?(已解决)

各位老师,

 

用SQL command查询生成窗口中的table,得到的临时表能否再增加临时列,但如下代码为何总提示出错,但最后又正确显示出结果?

 谢谢!

 

Dim tr As WinForm.TreeView = e.Form.Controls("TreeView1")
\'用SQL语句从后台表取数形成临时表
Dim cmd As New SQLCommand
Dim dt As DataTable
cmd.C
cmd.CommandText = "SELECT 产品编码,产品类别,产品系列,名称,规格,颜色,计量单位 From {产品编码}"
dt = cmd.ExecuteReader()
dt.DataCols.Add("选择1", Gettype(Boolean))
Tables(e.Form.name & "_Table1").DataSource = dt
Tables(e.Form.name & "_Table1").AllowEdit = True
Tables(e.Form.name & "_Table1").Cols("选择1").Move(0)
Tables(e.Form.name & "_Table1").AutoSizeCols()

tr.BuildTree(dt,"产品类别|产品系列")
tr.Nodes.Insert("显示所有",0) \'插入顶端节点


 


此主题相关图片如下:360截图20130106-1.jpg
按此在新窗口浏览图片

 

此主题相关图片如下:360截图20130106-2.jpg
按此在新窗口浏览图片


 


此主题相关图片如下:360截图20130106-3.jpg
按此在新窗口浏览图片
[此贴子已经被作者于2013-1-7 13:41:04编辑过]

--  作者:狐狸爸爸
--  发布时间:2013/1/7 8:48:00
--  

这样改一下:

 

Dim tr As WinForm.TreeView = e.Form.Controls("TreeView1")
\'用SQL语句从后台表取数形成临时表
Dim cmd As New SQLCommand
Dim dt As DataTable
cmd.Connection  name = "数据源名称"
cmd.CommandText = "SELECT 产品编码,产品类别,产品系列,名称,规格,颜色,计量单位 From {产品编码}"
dt = cmd.ExecuteReader()
Tables(e.Form.name & "_Table1").DataSource = dt
DataTables(e.Form.name & "_Table1").DataTable.DataCols.Add("选择1", Gettype(Boolean))
Tables(e.Form.name & "_Table1").AllowEdit = True
Tables(e.Form.name & "_Table1").Cols("选择1").Move(0)
Tables(e.Form.name & "_Table1").AutoSizeCols()

tr.BuildTree(dt,"产品类别|产品系列")
tr.Nodes.Insert("显示所有",0) \'插入顶端节点


--  作者:e-png
--  发布时间:2013/1/7 8:57:00
--  
形成窗口Table后再增加。
--  作者:zpx_2012
--  发布时间:2013/1/7 10:06:00
--  

还是不可以,

 


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

后来这句改成

Tables(e.Form.name & "_Table1").DataTable.DataCols.Add("选择1", Gettype(Boolean))

 

可以通过但在运行窗口选择时又提示:

  


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

--  作者:万通
--  发布时间:2013/1/7 10:11:00
--  
DataTables(e.Form.name & "_Table1").DataTable.DataCols.Add("选择1", Gettype(Boolean))
请问一下,DataTables(e.Form.name & "_Table1").DataTable是什么意思?(dt集合后面又跟一个dt是什么意思?)

如果是这样就好理解:Tables(e.Form.name & "_Table1").DataTable
但这样:DataTables(e.Form.name & "_Table1").DataTable如果理解啊?


--  作者:狐狸爸爸
--  发布时间:2013/1/7 10:14:00
--  
你增加的列名称是“选择1”,不是“选择”,留意其他位置的代码
--  作者:zpx_2012
--  发布时间:2013/1/7 10:38:00
--  

没有啊,我的代码是改过来的,是选择。

 

Dim tr As WinForm.TreeView = e.Form.Controls("TreeView1")
\'用SQL语句从后台表取数形成临时表
Dim cmd As New SQLCommand
Dim dt As DataTable
cmd.C
cmd.CommandText = "SELECT 产品编码,产品类别,产品系列,名称,规格,颜色,计量单位 From {产品编码}"
dt = cmd.ExecuteReader()

Tables(e.Form.name & "_Table1").DataSource = dt
Tables(e.Form.name & "_Table1").DataTable.DataCols.Add("选择", Gettype(Boolean))

Tables(e.Form.name & "_Table1").AllowEdit = True
Tables(e.Form.name & "_Table1").Cols("选择").Move(0)
Tables(e.Form.name & "_Table1").AutoSizeCols()


--  作者:狐狸爸爸
--  发布时间:2013/1/7 11:02:00
--  
做个简单例子发上来说话。
--  作者:zpx_2012
--  发布时间:2013/1/7 11:41:00
--  

上传例子,锁定及解锁行的代码在全局事件中

 

 

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:查询后增加临时列及父子表同时锁定解锁行问题.foxdb


--  作者:lin_hailun
--  发布时间:2013/1/7 12:31:00
--  
 换种思路才行。原表加入一列吧。反正都是临时列。

Dim tr As WinForm.TreeView = e.Form.Controls("TreeView1")
\'用SQL语句从后台表取数形成临时表
Dim cmd As New SQLCommand
Dim dt As DataTable = DataTables("产品编码")
dt.DataCols.Add("选择", Gettype(Boolean))


cmd.CommandText = "SELECT 选择,产品编码,产品类别,产品系列,名称,规格,颜色,计量单位 From {产品编码}"
dt = cmd.ExecuteReader()

Tables(e.Form.name & "_Table1").DataSource = dt

Tables(e.Form.name & "_Table1").AllowEdit = True
Tables(e.Form.name & "_Table1").AutoSizeCols()

tr.BuildTree(dt,"产品类别|产品系列")
tr.Nodes.Insert("显示所有",0) \'插入顶端节点