Foxtable(狐表)用户栏目专家坐堂 → 求助:Fill怎样才能支持存储过程


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

主题:求助:Fill怎样才能支持存储过程

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


加好友 发短信
等级:一尾狐 帖子:447 积分:4572 威望:0 精华:0 注册:2009/1/11 11:00:00
求助:Fill怎样才能支持存储过程  发帖心情 Post By:2010/10/25 17:36:00 [只看该作者]

SQL语句:

exec sp_executesql N'Exec P_QueryEmployeeLSBackMoney @P1,@P2,@P3,@P4,@P5', N'@P1 int,@P2 varchar(10),@P3 varchar(10),@P4 varchar(8),@P5 varchar(8)', 1, '2009-12-01', '2009-12-31', '00:00:00', '23:59:59'

 

说明:在SQL查询分析器中,能够正常执行,显示一张表格。

 

(1)在狐表中,新建一个窗口,在窗口中添加一个查询表Table6,用Fill执行,不成功,出错。

      请问怎样解决?

(2)在狐表中,用SQLCommand的ExecuteReader执行,测试正常。

      但是此表是隐藏的,不能显示到窗口Table6表中,请问怎样解决? 


 回到顶部
帅哥哟,离线,有人找我吗?
migold
  2楼 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:一尾狐 帖子:447 积分:4572 威望:0 精华:0 注册:2009/1/11 11:00:00
  发帖心情 Post By:2010/10/25 17:57:00 [只看该作者]

(3)在狐表中,自带的执行SQL中执行,也能够正常出现在预览中

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


加好友 发短信
等级:一尾狐 帖子:447 积分:4572 威望:0 精华:0 注册:2009/1/11 11:00:00
  发帖心情 Post By:2010/10/25 17:58:00 [只看该作者]

怎样才能在窗口Table表中显示?


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


加好友 发短信 一级勋章
等级:MVP荣誉狐 帖子:5154 积分:31434 威望:0 精华:8 注册:2008/9/8 12:27:00
  发帖心情 Post By:2010/10/25 18:04:00 [只看该作者]

以下是引用migold在2010-10-25 17:36:00的发言:

SQL语句:

exec sp_executesql N'Exec P_QueryEmployeeLSBackMoney @P1,@P2,@P3,@P4,@P5', N'@P1 int,@P2 varchar(10),@P3 varchar(10),@P4 varchar(8),@P5 varchar(8)', 1, '2009-12-01', '2009-12-31', '00:00:00', '23:59:59'

 

说明:在SQL查询分析器中,能够正常执行,显示一张表格。

 

(1)在狐表中,新建一个窗口,在窗口中添加一个查询表Table6,用Fill执行,不成功,出错。

      请问怎样解决?

(2)在狐表中,用SQLCommand的ExecuteReader执行,测试正常。

      但是此表是隐藏的,不能显示到窗口Table6表中,请问怎样解决? 

您应该贴出 1、2条的代码让高手们看看。


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


加好友 发短信 一级勋章 三级勋章 二级勋章
等级:超级版主 帖子:6318 积分:33957 威望:0 精华:10 注册:2008/8/31 20:56:00
  发帖心情 Post By:2010/10/25 18:32:00 [只看该作者]

SQLCommand后将绑定到窗口table控件即可。

 

如:

 

Dim cmd As New SQLCommand
cmd.CommandText = "SELECT * From {订单}"
Tables("窗口1_Table1").DataSource = cmd.ExecuteReader()


 回到顶部
帅哥哟,离线,有人找我吗?
migold
  6楼 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:一尾狐 帖子:447 积分:4572 威望:0 精华:0 注册:2009/1/11 11:00:00
  发帖心情 Post By:2010/10/26 10:13:00 [只看该作者]

谢谢5楼楼主,按照你的方法,解决了问题。

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


加好友 发短信 F6
等级:狐精 帖子:3036 积分:19223 威望:0 精华:2 注册:2008/9/1 7:50:00
  发帖心情 Post By:2010/10/26 10:24:00 [只看该作者]

还可以直接引用DataTable的Fill方法,参考:

例如:

Tables("窗口1_Table1").Fill("Select * From {客户}","nwnd",True)

不管Table原来是什么类型,显示的是什么数据,执行上述代码后,Table将成为SQLQuery类型,显示nwnd数据源中的客户表数据。

需要特别注意的是,如果只想取部分列生成SQLTable,那么必须包括主键列在内,例如:

Tables("窗口1_Table1").Fill("Select [_Identify],[客户],[数量],[单价] From {订单}",False)

这里假定订单表是内部数据表,内部数据表的主键列是_Identify,如果是外部表,请使用实际的主键列名称。

如果要生成SQLQuery,则没有这个限制:

Tables("窗口1_Table1").Fill("Select [客户],[数量],[单价] From {订单}",True)

一定要注意,如果要生成SQLTable,第二个参数要设置为False,如果要生成SQLQuery,第二个参数则要设置为True,切不可搞混。


 回到顶部