如何在 subsonic 3.0 中执行返回值的存储过程?例如,我的许多存储过程都返回@@identity,而我不知道如何在不重新查询表的情况下访问该值。同样,不是输出参数,而是返回值。
问问题
3097 次
7 回答
4
StoredProcedure sproc = db.FancySchmancySproc();
sproc.Execute();
int output = (int)sproc.Output; // returns type 'object' so you'll need to cast
于 2009-07-28T19:17:09.000 回答
1
StoredProcedure sp = SPs.TestProcedure(0);
sp.Command.AddReturnParameter();
object retValue = sp.Command.Parameters.Find(delegate(QueryParameter p)
{
return p.Mode == ParameterDirection.ReturnValue;
}).ParameterValue;
if (retValue!=null)
{
// cast the value to the type expected
int rc = (int) retValue;
}
于 2009-08-05T02:04:22.477 回答
1
这对我有用:
StoredProcedure sproc = db.FancySchmancySproc();
sproc.ExecuteScalar<int>();
于 2010-01-05T05:20:55.023 回答
1
好的......我让它与约翰希恩所说的一起工作,突然它开始给我一个例外。
我只是在使用以下 SP 进行测试。
SET ANSI_NULLS ON SET QUOTED_IDENTIFIER ON GO CREATE PROCEDURE TestLocal
@a 数字(18,0) AS
开始
设置无计数;
返回 10
结尾
去
我在 C# 中的代码如下
StoredProcedure sp = new DB().TestLocal(1);
sp.Execute();
int timeLeft = (int)sp.Output;
返回时间Left;
编辑1:
我通过执行以下操作使其正常工作,但我认为这不是正确的方法。
StoredProcedure sp = new DB().TestLocal(1);
sp.Command.AddReturnParameter();
sp.Execute();
int myReturnValue = (int)sp.Command.OutputValues[0];
返回我的返回值;
于 2011-01-09T08:56:12.857 回答
1
我一直在像这样使用 ActiveRecord 运行存储过程;
// Connect to DB and run the stored proc into a dataset
myDatabasedb db = new myDatabasedb();
DataSet ds = db.myStoredProc(firstparam, secondparam, etc);
// Now you can do what you like with the dataset!
Gridview1.datasource = ds.executeDataSet();
于 2011-08-10T01:02:20.423 回答
0
这就是我的想法,但 sproc.output 始终为空。不知道最新版本3.0.0.3有没有bug
于 2009-07-29T13:43:57.620 回答
0
StoredProcedure sproc = db.FancySchmancySproc();
sproc.ExecuteDataSet();
于 2009-08-27T10:38:45.933 回答