以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  请问如何把窗口table控件里的表格数据,转成datatable?  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=136758)

--  作者:houseer
--  发布时间:2019/6/21 7:54:00
--  请问如何把窗口table控件里的表格数据,转成datatable?
 我连接到firebird数据库,读到结果集到了一个窗口的table。怎么把这个放到datatable里?
--  作者:有点蓝
--  发布时间:2019/6/21 9:01:00
--  
table本身就对应一个datatable,不能直接用么?
tables("窗口1_table1").datatable


--  作者:有点甜
--  发布时间:2019/6/21 10:03:00
--  
以下是引用houseer在2019/6/21 7:54:00的发言:
 我连接到firebird数据库,读到结果集到了一个窗口的table。怎么把这个放到datatable里?

 

不能直接放到datatable的,必须通过窗口的table中转。


--  作者:houseer
--  发布时间:2019/6/21 10:06:00
--  
我就是想问问,怎么中转啊?  现在窗口的的table控件里有数据吧。想把它弄成到一个datatable里
--  作者:有点甜
--  发布时间:2019/6/21 10:14:00
--  
以下是引用houseer在2019/6/21 10:06:00的发言:
我就是想问问,怎么中转啊?  现在窗口的的table控件里有数据吧。想把它弄成到一个datatable里

 

1、为什么不能直接用table控件?直接使用它?你需要做什么要用到datatable?

 

2、你是需要把数据存放到foxtable里面永久保存起来?


--  作者:houseer
--  发布时间:2019/6/21 10:35:00
--  
    我连接了firebird数据库,得到了一个临时表。然后把这个临时表赋给了一个table控件的datascurce。
这是几行语句:
Dim mda As New FirebirdSql.Data.FirebirdClient.FBDataAdapter("se\\ect * from employee" , conn)
Dim dt As New System.Data.DataSet()
mda.Fill(dt, "TB")
e.form.controls("Table1").Table.DataSource = dt.Tables("TB")

    现在窗口的table显示是正常了。但是我需要用到table里的数据 和 别的datatable做连接什么的操作。 所以就想着如果这个临时表能弄成一个实体的datatable就好了。
    倒不是一定要把这些数据保存起来,最好是加载的时候读取到datatable里,程序关闭再释放,这样在程序运行中就可以引用这个datatable。
    否则的话,这些数据应该是以一个临时表的形式存在,这样我似乎没办法把它和其他表做一些连接查询什么的操作。
[此贴子已经被作者于2019/6/21 10:35:54编辑过]

--  作者:有点甜
--  发布时间:2019/6/21 10:43:00
--  

只要这个窗口不关闭,不是一直可以直接使用?如

 

Dim dt As DataTable = e.form.controls("Table1").Table.DataTable

 


--  作者:houseer
--  发布时间:2019/6/26 10:00:00
--  
那样会提示:  Property \'DataSource\' is WriteOnly.
--  作者:houseer
--  发布时间:2019/6/26 10:32:00
--  
无论是:f.SourceTable = e.form.controls("Table2").Table.DataSource  
还是:For Each dr1 As DataRow In e.form.controls("Table2").Table.DataTable


均报上面那个错。

--  作者:有点甜
--  发布时间:2019/6/26 10:39:00
--  

那你试试

 

msgbox(e.form.controls("Table2").Table.DataTable.name)

msgbox(e.form.controls("Table2").Table.DataTable.datarows.count)