以文本方式查看主题
- Foxtable(狐表) (http://foxtable.net/bbs/index.asp)
-- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2)
---- 关于一个文件中多个表动态加载数据问题请教 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=3530)
|
-- 作者:卟离卟弃
-- 发布时间:2009/7/11 16:48:00
-- 关于一个文件中多个表动态加载数据问题请教
表A中的窗口AfterLoad事件代码 Dim cmd As New SQLCommand Dim dt As DataTable cmd.C cmd.CommandText = "SELECT DISTINCT 部门,生产任务单号 From 部门计划" dt = cmd.ExecuteReader() Dim t As WinForm.TreeView = e.Form.Controls("TreeView1") t.BuildDataTree(dt, "","部门", "生产任务单号") 保存窗口后,无问题,可以动态加载
表B的窗口AfterLoad事件代码 Dim cmd As New SQLCommand Dim dt As DataTable cmd.C cmd.CommandText = "SELECT DISTINCT 工段,生产任务单号 From 车间工段计划" dt = cmd.ExecuteReader() Dim trv As WinForm.TreeView = e.Form.Controls("TreeView1") trv.BuildDataTree(dt, "","工段", "生产任务单号")
保存后,打开窗口,提示
此主题相关图片如下:tt截图未命名.bmp
两个表的数据原文件名是 部门与工段计划.mdb
文件项目BeforeLoadOuterTable事件中代码是
If e.DataTableName = "车间工段计划" Then e.SelectString = "Select * From {车间工段计划} where 生产任务单号 = \'a\'" End If
If e.DataTableName = "部门计划" Then e.SelectString = "Select * From {部门计划} where 生产任务单号 = \'a\'" End If
所有代码都是依照狐爸的例子试用的, 为什么表A的窗口又可以,去表B中设置,同样的代码,数据原也一样,只是数据表不一样就提示错误呢?
谁知道?说说杂回事儿?
|
-- 作者:yangming
-- 发布时间:2009/7/11 16:56:00
--
你有工段这一列吗?
|
-- 作者:lxl
-- 发布时间:2009/7/11 17:31:00
--
以下是引用卟离卟弃在2009-7-11 16:48:00的发言: 表B的窗口AfterLoad事件代码 Dim cmd As New SQLCommand Dim dt As DataTable cmd.C cmd.CommandText = "SELECT DISTINCT 工段,生产任务单号 From 车间工段计划" dt = cmd.ExecuteReader() Dim trv As WinForm.TreeView = e.Form.Controls("TreeView1") trv.BuildDataTree(dt, "","工段", "生产任务单号")
你试试这个代码:
Dim cmd As New SQLCommand Dim dt As DataTable cmd.C cmd.CommandText = "SELECT DISTINCT 工段,生产任务单号 From 车间工段计划" dt = cmd.ExecuteReader() If dt Is Nothing Then Messagebox.show("111") Dim trv As WinForm.TreeView = e.Form.Controls("TreeView1") trv.BuildDataTree(dt, "","工段", "生产任务单号")
看看有没有提示“111”
[此贴子已经被作者于2009-7-11 17:31:36编辑过]
|
-- 作者:卟离卟弃
-- 发布时间:2009/7/13 8:10:00
--
老兄,有111.............
|
-- 作者:卟离卟弃
-- 发布时间:2009/7/13 8:11:00
--
杨姐 有那一列..
|
-- 作者:狐狸爸爸
-- 发布时间:2009/7/13 8:35:00
--
检查一下目录树的名称正确否。
|
-- 作者:卟离卟弃
-- 发布时间:2009/7/13 10:23:00
--
看过,目录树是正确的.
|
-- 作者:狐狸爸爸
-- 发布时间:2009/7/13 10:47:00
--
口说无凭,上传示例
|
-- 作者:lxl
-- 发布时间:2009/7/13 10:51:00
--
以下是引用卟离卟弃在2009-7-13 8:10:00的发言: 老兄,有111.............
提示111 说明没有生成 DataTable 你在杂项里面选择外部数据源,执行下面的SQL SELECT DISTINCT 部门,生产任务单号 From 部门计划
看结果是不是正确的
|
-- 作者:卟离卟弃
-- 发布时间:2009/7/13 10:55:00
--
解决了,是数据库连接名称问题的错误... 原数据库名称是"车间数据文件" 我连接数据库的时候取的名称"部门计划"
两个动态加载数据窗口中其实都是用同一个数据源,只是数据表不一样,所以代码应该是这样 表A中的窗口AfterLoad事件代码 Dim cmd As New SQLCommand Dim dt As DataTable cmd.C cmd.CommandText = "SELECT DISTINCT 部门,生产任务单号 From 部门计划" dt = cmd.ExecuteReader() Dim t As WinForm.TreeView = e.Form.Controls("TreeView1") t.BuildDataTree(dt, "","部门", "生产任务单号") 保存窗口后,无问题,可以动态加载
表B的窗口AfterLoad事件代码 Dim cmd As New SQLCommand Dim dt As DataTable cmd.C cmd.CommandText = "SELECT DISTINCT 工段,生产任务单号 From 车间工段计划" dt = cmd.ExecuteReader() Dim trv As WinForm.TreeView = e.Form.Controls("TreeView1") trv.BuildDataTree(dt, "","工段", "生产任务单号")
这样就无问题了
|