【发布时间】:2015-06-11 07:28:41
【问题描述】:
我做了一些研究,发现了一些关于如何使用存储过程的返回值的想法,例如:
using (SqlCommand cmd = conn.CreateCommand())
{
cmd.CommandText = parameterStatement.getQuery();
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.AddWithValue("SeqName", "SeqNameValue");
var returnParameter = cmd.Parameters.Add("@ReturnVal", SqlDbType.Int);
returnParameter.Direction = ParameterDirection.ReturnValue;
conn.Open();
cmd.ExecuteNonQuery();
var result = returnParameter.Value;
}
但我使用的是这样的:
Database.AddInParameter();
我不必打开和关闭连接..
有人可以帮助我了解是否可以使用 DataBase 方法使用 Direction.Returnvalue 吗?
抱歉,问题有点杂乱无章:)如果有什么不清楚的地方,请随时询问
【问题讨论】:
-
cmd.ExecuteScalar()怎么样?我不确定你在问什么。您是特别想使用 Return-Parameter 还是只想从您的 proc 访问返回值? -
我只想从我的过程中访问返回值。如果它符合我的要求,请查看 cmd.ExecuteScalar。提前致谢!
-
@Patrik Eckebrecht 1 感谢您的评论。实际上我想使用 EnterpriseLibrary.Data.Database 对象和执行非查询方法而不是命令。执行
因为代码是预先编写的,我不想改变太多 -
嗯,好的。不是很清楚。也许改写一下让别人更好地理解。
-
我有点着急,所以无法以更好的方式格式化和表达我的问题 :) 但我得到了一个非常适合我的解决方案,我使用了 DataBase.outParameter ..