Попробуйте этот подход:
var bankParameter =
new SqlParameter("@BankType", SqlDbType.VarChar) { Value = "Checking" };
var emailParameter =
new SqlParameter("@VendorEmail", SqlDbType.VarChar) { Value = "vendorEmail@yahoo.com" };
var idParameter =
new SqlParameter("@ID", SqlDbType.Int32) { Value = 12345 };
var conStr = "yourConnectionString";
using (SqlConnection sConn = new SqlConnection(conStr))
{
using (SqlCommand sComm = new SqlCommand("TestStoredProc", sConn))
{
sComm.CommandTimeout = 60;
sComm.CommandType = CommandType.StoredProcedure;
sComm.Parameters.Add(bankParameter);
sComm.Parameters.Add(emailParameter);
sComm.Parameters.Add(idParameter);
var returnParameter = sComm.Parameters.Add("@Confirm", SqlDbType.Bit);
returnParameter.Direction = ParameterDirection.ReturnValue;
sConn.Open();
//// NonQuery
sComm.ExecuteNonQuery();
var result = returnParameter.Value;
}
}
Этот фрагмент кода имеет некоторые недостатки (например, отсутствие заданных conStr или неправильных типов данных), но он должен работать, если вы подстраиваете их под свои нужды. Главное отличие в том, что мой Direction
-
returnParameter.Direction = ParameterDirection.ReturnValue;
и ваш
outputParameter.Direction = System.Data.ParameterDirection.Output;
Кроме того, я добавил CommandTimeout = 60
, потому что, возможно, в вашем коде нет ничего плохого, но ваш SP слишком длинный.