Stored procedure returns null as output parameter
Salaam, You can check if output is null and convert like this.
returnedSQLParameter.Value != DBNull.Value? (int)returnedSQLParameter.Value : 0;
Because it is returning DBNull.value
when output sent NULL
from stored procedure.
SqlCommand cmd = new SqlCommand("proc_name", conn);
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.Add(new SqlParameter("@p_SomeVal", SqlDbType.Int));
cmd.Parameters["@p_SomeVal"].Direction = ParameterDirection.Output;
rdr = cmd.ExecuteReader();
//...process rows...
rdr.Close();
if (cmd.Parameters["@p_SomeVal"].Value != null)
SomeVal = (int)cmd.Parameters["@p_SomeVal"].Value;
After procesing rows I added rdr.Close();
and worked fine.