以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  存储过程返回表  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=131702)

--  作者:goldenfont
--  发布时间:2019/3/4 19:22:00
--  存储过程返回表
用SQLCommand执行存储过程,存储过程中是临时表,datatable取不到?必须是实表才行吗?
Dim cmd As new S QLCommand
cmd.C
cmd.C ommandText = "EXEC P_1 ?,?,? output" 
cmd.Parameters.Add("@A1",e.Form.Controls("txt1").Text)
cmd.Parameters.Add("@A2",e.Form.Controls("txt2").Text)
cmd.Parameters.Add("@A3",0,False)
Dim dt As DataTable = cmd.ExecuteReader
msgbox(dt.DataRows.Count)  这里得到的是0
Tables(e.Form.Name & "_Table1").DataSource = dt
Dim count As Integer  = Cmd.Parameters("@A3") \'取得存储过程的返回值
msgbox(count)

--  作者:有点蓝
--  发布时间:2019/3/4 20:00:00
--  
不支持返回临时表的数据的,必须是实表
--  作者:goldenfont
--  发布时间:2019/3/4 23:20:00
--  
哦,好吧,因为我的表结构分好多种的,用临时表比较简单,列可以自己代码控制,实表就麻烦了,是不是还得执行SQL创建表,写数据,读取,然后在删表,要自己搞了图片点击可在新窗口打开查看
--  作者:有点甜
--  发布时间:2019/3/5 9:20:00
--  

参考帖子的15楼,修改一下你的存储过程

 

http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=128182&authorid=0&page=0&star=2