从Firebird 2.0存储过程填充ASP.NET SqlDataSource

时间:2013-05-17 14:04:22

标签: asp.net stored-procedures firebird sqldatasource

我正在开展一个项目,我无法控制我被要求使用的产品版本。

我正在构建一个ASP.NET用户控件。通过用于Firebired 2.0数据库的SqlDataSource控件检索数据。一切都很好,直到我需要通过存储过程而不是SqlDataSource语句填充其中一个SELECT控件。

我已经验证过程是在EMS SQL Manager中为Interbase和Firebird返回数据。但是,当我将SqlDataSource的{​​{1}}属性设置为SelectCommand并调用EXECUTE PROCEDURE myProc时,我无法获取数据。

我的程序没有输入参数,所以在我看来它应该是直截了当的。

情况的实际情况是,如果我能够移动到2.1,因为我可以访问Select()聚合函数,我可以使用简单的SELECT语句,但这不是可能性。

有没有人有尝试这样做的经验?是否需要以任何方式修改过程调用?任何帮助将不胜感激。

2 个答案:

答案 0 :(得分:0)

我通常会这样做(针对SQL Server):

// set the SqlDataSource's SelectCommand to the *name* of the stored procedure
myDataSource.SelectCommand = "myProc";

// tell the SqlDataSource that this is a *stored procedure* now
myDataSource.SelectCommandType = CommandType.StoredProcedure;

由于你的存储过程根本没有输入参数,所以这应该就是全部!

使用SQL Server,选择数据可以正常使用此设置。

答案 1 :(得分:0)

如果它是可选择的存储过程(它中有SUSPEND命令),那么你应该使用SELECT语句而不是EXECUTE PROCEDURE语句来调用它。因此,请将SelectCommand设置为

SELECT * FROM spName

它应该有用。