Foxtable(狐表)用户栏目专家坐堂 → 使用外部数据源时,动态加载数据的例子


  共有26083人关注过本帖树形打印复制链接

主题:使用外部数据源时,动态加载数据的例子

帅哥哟,离线,有人找我吗?
狐狸爸爸
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:管理员 帖子:47497 积分:251403 威望:0 精华:91 注册:2008/6/17 17:14:00
使用外部数据源时,动态加载数据的例子  发帖心情 Post By:2009/3/17 0:03:00 [显示全部帖子]

这是使用外部数据源进行动态加载的例子:

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目2.rar


 

为测试方便,使用的是Aceess数据库作为数据源。

如果使用Sql Server,只需删除BeforeConnectOuterDataSource事件中的代码即可。


[本帖被加为精华]
 回到顶部
帅哥哟,离线,有人找我吗?
狐狸爸爸
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:管理员 帖子:47497 积分:251403 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2009/3/17 9:15:00 [显示全部帖子]

目录树也没有真正加载数据,因为目录树的Select语句用了Distinct关键词,这样只是获得不重复的产品和和户名称,这个数据量是极小的。

 回到顶部
帅哥哟,离线,有人找我吗?
狐狸爸爸
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:管理员 帖子:47497 积分:251403 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2009/3/17 11:24:00 [显示全部帖子]

哈哈,错误提示已经告诉你了啊:

For each dr2 as datarow in dt.DataRows
Next

 回到顶部
帅哥哟,离线,有人找我吗?
狐狸爸爸
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:管理员 帖子:47497 积分:251403 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2009/3/17 11:46:00 [显示全部帖子]

以下是引用gaoqr在2009-3-17 11:37:00的发言:

这样修改也报错

            Dim bh As String = c("定额编号")
            Dim cmd As New SQLCommand
            Dim dt As DataTable
            cmd.CommandText = "SELECT * From de WHERE 定额编号 = bh "
            dt = cmd.ExecuteReader()
            For Each dr2 As DataRow In DataTables(dt).Select("定额编号 = bh ")

怎样修改正确?BeforeLoadOuterTable 应这样设置?

谢谢!


1、上面的代码和BeforeLoadOuterTable没有关系吧,报错得看错误提示,既然使用外部数据源,Cmd应该指定数据源名称,否则默认使用内部数据源,自然报错

2、如果所有的表,都不加载数据,BeforeLoadOuterTable的代码为:

e.SelectString = "Select * From "  & e.DataTableName  & "Where 1> 2"

如果是部分表:

select case e.DataTableName 
   case "表1","表2","表3"
      e.SelectString = "Select * From "   & e.DataTableName  & "Where 1> 2"
end select

3、一条一条加载,是低效做法,也容易带来其他问题,最好用Load和LoadFilter直接载入即可。
如果只是部分列,例如表4加载部分列,BeforeLoadOuterTable的代码为:

select case e.DataTableName 
   case "表1","表2","表3"
      e.SelectString = "Select * From "  &  e.DataTableName  & "Where 1> 2"
   case 
      e.SelectString = "Select 第一列,第二列,第三列 From 表 Where 1> 2"
end select

打开项目后,需要加载表4符合条件的数据:

DataTables("表4").LoadFilter = 条件表达式
DataTables("表4").Load

[此贴子已经被作者于2009-3-17 11:54:59编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
狐狸爸爸
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:管理员 帖子:47497 积分:251403 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2009/6/3 14:58:00 [显示全部帖子]

以下是引用woodiy在2009-6-3 14:56:00的发言:
能否用文本框输入的方式动态加载呢?


可以啊,根据输入的内容,动态合成加载表达式即可。


 回到顶部