我正在开展一个项目,我无法控制我被要求使用的产品版本。
我正在构建一个ASP.NET用户控件。通过用于Firebired 2.0数据库的SqlDataSource
控件检索数据。一切都很好,直到我需要通过存储过程而不是SqlDataSource
语句填充其中一个SELECT
控件。
我已经验证过程是在EMS SQL Manager中为Interbase和Firebird返回数据。但是,当我将SqlDataSource
的{{1}}属性设置为SelectCommand
并调用EXECUTE PROCEDURE myProc
时,我无法获取数据。
我的程序没有输入参数,所以在我看来它应该是直截了当的。
情况的实际情况是,如果我能够移动到2.1,因为我可以访问Select()
聚合函数,我可以使用简单的SELECT
语句,但这不是可能性。
有没有人有尝试这样做的经验?是否需要以任何方式修改过程调用?任何帮助将不胜感激。
答案 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
它应该有用。