从Firebird 2.0存储过程填充ASP.NET SqlDataSource
我正在从事一个项目,在这个项目中,我对要求我使用的产品版本没有任何控制权 我正在构建一个ASP.NET用户控件。通过使用Firebired 2.0数据库的从Firebird 2.0存储过程填充ASP.NET SqlDataSource,asp.net,stored-procedures,firebird,sqldatasource,Asp.net,Stored Procedures,Firebird,Sqldatasource,我正在从事一个项目,在这个项目中,我对要求我使用的产品版本没有任何控制权 我正在构建一个ASP.NET用户控件。通过使用Firebired 2.0数据库的SqlDataSource控件检索数据。在我需要通过存储过程而不是SELECT语句填充SqlDataSource控件之一之前,一切都很好 我已经验证了该过程正在Interbase和Firebird的EMS SQL Manager中返回数据。但是,当我将SqlDataSource的SelectCommand属性设置为executeprocedur
SqlDataSource
控件检索数据。在我需要通过存储过程而不是SELECT
语句填充SqlDataSource
控件之一之前,一切都很好
我已经验证了该过程正在Interbase和Firebird的EMS SQL Manager中返回数据。但是,当我将SqlDataSource
的SelectCommand
属性设置为executeprocedure myProc
并调用Select()
时,我没有得到任何数据
我的程序不需要输入参数,所以在我看来应该是直接的
实际情况是,如果我能够移动到2.1,我可以使用一个简单的SELECT
语句,因为我可以访问List()
聚合函数,但这是不可能的
有没有人有这样做的经验?是否需要以任何方式修改过程调用?非常感谢您的帮助。我通常会这样做(针对SQL Server): 由于您的存储过程根本不接受任何输入参数,所以这应该就是全部
在SQL Server中,选择数据可以很好地进行此设置。如果它是可选择的存储过程(其中包含
SUSPEND
命令),则应使用SELECT
语句调用它,而不是使用EXECUTE procedure
语句调用它。因此,将SelectCommand
设置为
SELECT * FROM spName
它应该会起作用。谢谢marc_。我试过了,我从firebirdSorry得到了一个动态sql错误。。。我发布得太快了,浪费了编辑时间:)。我的错误如下所示:动态SQL错误SQL错误代码=-104令牌未知-第1行,第1列myProc,所以我认为需要使用EXECUTE过程调用它,就像我在Firebird中所做的那样。。。当我最初这样做的时候,我没有得到任何数据,但我也没有得到任何错误,看起来它是它阻塞的存储过程的名称。我可以使用FB客户机类很好地获取数据。现在,我将填充一个视图,我正以这种方式绑定到网格,但我想使用数据源,这样我就可以使用它的缓存功能。@burghboy:好的-对不起,我对Firebird不太了解,因此无法在这个主题上真正提供帮助。非常感谢!!我觉得不那样做很傻:)。所有数据均已返回且工作正常!!
SELECT * FROM spName