【问题标题】:Is it possible to use dataBase.executeNonQuery and use a return value from a stored proc?是否可以使用 dataBase.executeNonQuery 并使用存储过程的返回值?
【发布时间】: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 ..

标签: c# enterprise-library-5


【解决方案1】:

使用database.outParameter作为返回值的参数

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-10-19
    • 1970-01-01
    • 1970-01-01
    • 2012-10-24
    • 2019-01-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多