Ask Learn
Preview
Please sign in to use this experience.
Sign inThis browser is no longer supported.
Upgrade to Microsoft Edge to take advantage of the latest features, security updates, and technical support.
Note
Access to this page requires authorization. You can try signing in or changing directories.
Access to this page requires authorization. You can try changing directories.
Another short one.
How to capture OUT and RETURN parameter values from a stored procedure in .Net.
Well, I’ll let the example speak for itself.
First create a stored procedure, this just take an in parameter and an out parameter, it declares a local variable that will be used as the return value.
create procedure ParamExample (@inParam int, @outParam int out)
as
begin
declare @retParam int
set @outParam = @inParam * 2
set @retParam = @inParam * 4
return @retParam
end
and test it:
declare @in int
declare @out int
declare @ret int
set @in = 100
set @out = 0
exec @ret = ParamExample @in, @out out
select @out as o, @ret as r
This should simply returns 200 for out parameter and 400 for the return.
Now, create a console application (C# in my case) replace the Main method with this.
I’ve used two approaches, one verbose and a shorter one, they both to the same thing however.
string cs = @"Data Source=.\sqlexpress;Initial Catalog=Repros;Integrated Security=SSPI";
string sql = "ParamExample";
try
{
// Verbose approach
using (SqlConnection con = new SqlConnection(cs))
{
con.Open();
// Create the command, setting the command text to be the stored procedure name
SqlCommand cmd = new SqlCommand();
cmd.Connection = con;
cmd.CommandText = sql;
// Also need to specify that this is a stored procedure command (default is Text)
cmd.CommandType = System.Data.CommandType.StoredProcedure;
// Create the input paramenter, set the properites and add to command.
SqlParameter inParam = new SqlParameter();
inParam.SqlDbType = System.Data.SqlDbType.Int;
inParam.ParameterName = "@inParam";
inParam.Direction = System.Data.ParameterDirection.Input;
inParam.Value = 100;
cmd.Parameters.Add(inParam);
// Create the out paramenter, set the properites and add to command).
SqlParameter outParam = new SqlParameter();
outParam.SqlDbType = System.Data.SqlDbType.Int;
outParam.ParameterName = "@outParam";
outParam.Value = 100;
outParam.Direction = System.Data.ParameterDirection.Output;
cmd.Parameters.Add(outParam);
// Create the return paramenter, set the properites and add to command).
SqlParameter retParam = new SqlParameter();
retParam.SqlDbType = System.Data.SqlDbType.Int;
retParam.ParameterName = "@retParam";
retParam.Direction = System.Data.ParameterDirection.ReturnValue;
cmd.Parameters.Add(retParam);
// Execute the command
cmd.ExecuteNonQuery();
// Get the values
int retval = (int)cmd.Parameters["@retParam"].Value;
int outval = (int)cmd.Parameters["@outParam"].Value;
Console.WriteLine("Return value: {0}, Out value: {1}", retval, outval);
// or get them directly from the parameter variable itself.
Console.WriteLine("Return value: {0}, Out value: {1}", retParam.Value, outParam.Value);
con.Close();
}
// Short approach
using (SqlConnection con = new SqlConnection(cs))
{
con.Open();
// Create the command, setting the command text to be the stored procedure name
SqlCommand cmd = new SqlCommand(sql, con);
cmd.CommandType = System.Data.CommandType.StoredProcedure;
// Create the input/output/return paramenter
cmd.Parameters.AddWithValue("@inParam", 100).Direction = System.Data.ParameterDirection.Input;
cmd.Parameters.Add("@outParam", System.Data.SqlDbType.Int).Direction = System.Data.ParameterDirection.Output;
cmd.Parameters.Add("@retParam", System.Data.SqlDbType.Int).Direction = System.Data.ParameterDirection.ReturnValue;
// Execute the command
cmd.ExecuteNonQuery();
// Get the values
int retval = (int)cmd.Parameters["@retParam"].Value;
int outval = (int)cmd.Parameters["@outParam"].Value;
Console.WriteLine("Return value: {0}, Out value: {1}", retval, outval);
con.Close();
}
}
catch (SqlException se)
{
Console.WriteLine(se);
}
Simple as that J
Anonymous
May 07, 2009
PingBack from http://asp-net-hosting.simplynetdev.com/a-simple-example-on-how-to-get-return-and-out-parameter-values-using-adonet/
Anonymous
May 11, 2014
Store Procedure with Parameters..
net-informations.com/.../cs-procedure-parameter.htm
Please sign in to use this experience.
Sign in