以文本方式查看主题

-  Foxtable(狐表)  (http://www.foxtable.com/bbs/index.asp)
--  专家坐堂  (http://www.foxtable.com/bbs/list.asp?boardid=2)
----  [求助]窗口表数据源设置为全局数据表问题  (http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=142055)

--  作者:whoami2012
--  发布时间:2019/10/17 12:47:00
--  [求助]窗口表数据源设置为全局数据表问题
 在全局代码中,定义了全局表
Public _XuanZeBaoJia As DataTable 

使用下列代码加载了数据
SqlCmd.CommandText = "S e l e c t * FROM {报价单}"
_XuanZeBaoJia = SqlCmd.ExecuteReader

在一个模式窗口中,放置了表控件 Table1,并在AfterLoad事件中,写如下代码
Tables(e.Form.Name & "_Table1").DataSource = _XuanZeBaoJia

第一次打开窗口,窗口表格内容正常显示了报价单中数据。但关闭窗口,再重新打开后,就无法显示任何数据。

这个操作在9月28日前版本一直是正常的,这几天升级后,就出现这个问题

--  作者:有点蓝
--  发布时间:2019/10/17 13:42:00
--  
不要把全局变量的DataTable表格绑定到任何窗口。窗口关闭后DataTable会被销毁,除非调用SqlCmd.ExecuteReader重新取一次值
--  作者:whoami2012
--  发布时间:2019/10/17 13:47:00
--  
是想用这个办法,加快数据显示速度,不用每次重新加载。
有什么其它办法实现吗?

--  作者:有点蓝
--  发布时间:2019/10/17 13:59:00
--  
那使用主表也一样的效果啊,为什么要使用全局变量?
--  作者:whoami2012
--  发布时间:2019/10/17 14:04:00
--  
数据是来自于多个表,大概几万条,所以用了Sql语句。

--  作者:有点蓝
--  发布时间:2019/10/17 14:06:00
--  
那就使用查询表:http://www.foxtable.com/webhelp/topics/2329.htm
--  作者:whoami2012
--  发布时间:2019/10/17 14:10:00
--  
 查询表可以用代码设置Sql语句吗?有时需要按新的条件重新加载数据

--  作者:有点蓝
--  发布时间:2019/10/17 14:18:00
--  
如果Sql语句不改动,只是加查询条件,查询表和主表的用法是一样的:http://www.foxtable.com/webhelp/topics/1928.htm
--  作者:whoami2012
--  发布时间:2019/10/17 14:25:00
--  
 解决了,太感谢了!!
这个问题折腾了好几天了