【问题标题】:Calling SQL Server stored procedure with result set and return valueCalling SQL Server stored procedure with result set and return value
【发布时间】:2022-12-27 21:56:18
【问题描述】:

Is there a way to get a dataset and a return value from a SQL Server stored procedure with just one execution of the stored procedure?

Is there a way to get both in just one call?

TIA Marcos Galvani

SqlConnection conn = new SqlConnection(ConnectionString);

// Pick the stored procedure to be executed
SqlCommand cmd = new SqlCommand("CustomersList02", conn);
cmd.CommandType = CommandType.StoredProcedure;

// Set the parameters and return value
cmd.Parameters.Add(new SqlParameter("@Email", email));
cmd.Parameters.Add(new SqlParameter("@ReturnVal", SqlDbType.Int)).Direction = ParameterDirection.ReturnValue;

// Open the connection
conn.Open();

If I do this:

var dt = new DataTable();
dt.Load(cmd.ExecuteReader());

I don't get the return value, but if I do this:

cmd.ExecuteNonQuery();

I don't get the result set.

【问题讨论】:

  • After doing cmd.ExecuteReader() did you check the value of Return value parameter?
  • I did. it is null.
  • You can use output parameter instead of return parameter
  • Not what I need. but thanks for the advice.

标签: c# sql-server stored-procedures


【解决方案1】:

You can do this in a single call.

using (SqlDataReader reader = cmd.ExecuteReader())
{
    var dt = new DataTable();
    dt.Load(reader);
}

// getthe return value.
int returnValue = (int)cmd.Parameters["@ReturnVal"].Value;

【讨论】:

    猜你喜欢
    • 2022-12-02
    • 1970-01-01
    • 2012-08-15
    • 1970-01-01
    • 2022-11-30
    • 2017-09-18
    • 2013-12-29
    • 1970-01-01
    • 2023-04-07
    相关资源
    最近更新 更多