Foxtable(狐表)用户栏目专家坐堂 → [讨论]关于存储过程执行不能返回结果的问题


  共有7450人关注过本帖平板打印复制链接

主题:[讨论]关于存储过程执行不能返回结果的问题

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


加好友 发短信
等级:婴狐 帖子:85 积分:625 威望:0 精华:0 注册:2012/11/27 11:00:00
[讨论]关于存储过程执行不能返回结果的问题  发帖心情 Post By:2013/3/6 14:01:00 [只看该作者]

有以下两个存储过程 fox_test_01、fox_test_02 和 fox_test_03 :
------------------------------------------------
create proc fox_test_01
as
begin
    select '1' 编号, 'apple' 名称
    union all
    select '2' 编号, 'banana' 名称
    union all
    select '3' 编号, 'cherry' 名称
end 
------------------------------------------------
create proc fox_test_02
as
begin
    select '1' 编号, 'apple' 名称
    into #tmp
    union all
    select '2' 编号, 'banana' 名称
    union all
    select '3' 编号, 'cherry' 名称

   select * from #tmp
end
------------------------------------------------
create proc fox_test_03
as
begin
    create table #tmp(编号 varchar(20), 名称 varchar(50))

    insert into #tmp(编号, 名称)
    select '1' 编号, 'apple' 名称
    union all
    select '2' 编号, 'banana' 名称
    union all
    select '3' 编号, 'cherry' 名称

    select * from #tmp
end 
------------------------------------------------
利用 SQLCommand 的 ExecuteReader 方法分别执行以下SQL:
exec fox_test_01
exec fox_test_02
exec fox_test_03

结果只有fox_test_01返回结果,fox_test_02却返回空,fox_test_03提示SQL语法错误而不能执行。
貌似 ExecuteReader 方法只能获取第一个语句的结果,而导致上面的结果。这个是不是Bug?

因为很多复杂的报表,都用存储过程来执行查询并返回结果,希望能够解决这个问题。
[此贴子已经被作者于2013-3-6 14:06:54编辑过]

 回到顶部