I have following working code. This has 1 input and two output parameters. Which ado.net method should I use?
OneInputTwoOutput oneInputTwoOutput = new OneInputTwoOutput();
var Param = new DynamicParameters();
Param.Add("@Input1", Input1);
Param.Add("@Output1", dbType: DbType.Boolean, direction: ParameterDirection.Output);
Param.Add("@Output2", dbType: DbType.Boolean, direction: ParameterDirection.Output);
try
{
using (SqlConnection con = new SqlConnection(ConfigurationManager.AppSettings["connectionString"]))
{
using (SqlCommand cmd = new SqlCommand("GetOneInputTwoOutput", con))
{
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.Add("@Input1", SqlDbType.Int).Value = Input1;
cmd.Parameters.Add("@Output1", SqlDbType.Bit).Direction = ParameterDirection.Output;
cmd.Parameters.Add("@Output2", SqlDbType.Bit).Direction = ParameterDirection.Output;
con.Open();
dealerStatus.Output1= (cmd.Parameters["@Output1"].Value != DBNull.Value ? Convert.ToBoolean(cmd.Parameters["@Output1"].Value) : false);
dealerStatus.Output2= (cmd.Parameters["@Output2"].Value != DBNull.Value ? Convert.ToBoolean(cmd.Parameters["@Output2"].Value) : false);
con.Close();
}
}
}
catch (SqlException err)
{
}
I read this link: Get output parameter value in ADO.NET
This suggests using cmd.ExecuteNonQuery()
. But even not using this cmd.ExecuteNonQuery()
, I am able to set the output parameters.
Can someone explain how? And what should be used here?