使用params的C#OdbcDataReader storedproc调用不返回任何数据

时间:2012-06-12 21:51:36

标签: c# .net

我认为有一些微不足道的事情,我忽略了这个问题,我正在调用存储过程,我知道调用是在我可以在分析器中看到它,当我从查询分析器运行存储过程时它确实按预期返回记录。问题是当我从C#代码调用它时,执行正在发生,但没有检索到结果。

我的调试显示,如果我有一个代码,如     如果OBJECT_ID('tempdb .. ## base')IS NOT NULL drop table ## base 在存储过程中,它不会使用OdbcDataReader返回任何数据,否则它将返回数据,有人可以告诉我为什么会这样吗?

由于

1 个答案:

答案 0 :(得分:0)

请记住,返回给.NET的结果是在过程中发出SELECT的LAST语句的结果。如果OBJECT_ID查询是在SELECT语句之后你想要返回数据那么你可能不会得到结果。

但是,我需要查看您的存储过程以确定无误。

SET QUOTED_IDENTIFIER ON 
GO

SET ANSI_NULLS ON 
GO

ALTER         PROCEDURE dbo.proc_myStoredProc
AS

if OBJECT_ID ('tempdb..##base') IS NOT NULL drop table ##base
SELECT * FROM mytable
GO

SET QUOTED_IDENTIFIER OFF 
GO

SET ANSI_NULLS ON 
GO

如果我删除上面的drop table语句,我得到数据,否则没有

如何检查和删除温度表

http://blog.sqlauthority.com/2009/05/17/sql-server-how-to-drop-temp-table-check-existence-of-temp-table/