Я пытаюсь выполнить хранимую процедуру и распечатать вывод, но когда я запускаю код ниже, я получаю ошибку, например: «Процедура или функция« SPInsertLocal »ожидает параметр« @RES », который не был указан».«Процедура или функция ожидает параметра, который не был указан».
private void InsertPdtLocal(string code, string PON,string Qty)
{
string str = Properties.Settings.Default.conLocal;
SqlConnection con = new SqlConnection(str);
SqlCommand cmd = new SqlCommand("Execute SPInsertLocal @PON,@TCode,@Qty,@Type", con);
try
{
con.Open();
cmd.CommandTimeout = 150;
cmd.Parameters.AddWithValue("@PON", PON);
cmd.Parameters.AddWithValue("@Qty", Qty);
cmd.Parameters.AddWithValue("@TCode", code);
cmd.Parameters.AddWithValue("@Type", Globals.s_type);
SqlParameter output = new SqlParameter("@RES", SqlDbType.Int);
output.Direction = ParameterDirection.Output;
cmd.Parameters.Add(output);
cmd.ExecuteNonQuery();
con.Close();
int id = Convert.ToInt32(output.Value);
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
Что я здесь делаю неправильно?
Ваш SQLCommand не содержит @RES. Также вы можете просто использовать новый SqlCommand («SPInsertLocal», con), а затем указать CommandType = CommandType.StoredProcedure; –
Возможно, вы должны использовать операторы using, а SQLCommand реализует IDisposible –