У меня есть хранимая процедура в базе данных MySQL. Эта процедура принимает 6 входных параметров и 2 выходных параметра.Не принимать параметры для хранимой процедуры mysql C#
Мне нужно вызвать эту хранимую процедуру из моего приложения C#. Ниже мой код:
if (_MySqlConnectionSMS1.State != ConnectionState.Open)
_MySqlConnectionSMS1.Open();
using (MySqlCommand sqlcmd1 = new MySqlCommand("usp_Data_Insert", _MySqlConnectionSMS1))
{
sqlcmd1.Parameters.Add(new MySqlParameter("@in_ApplicationName", "AEM"));
sqlcmd1.Parameters.Add(new MySqlParameter("@in_ApplicationCode", "AEM"));
sqlcmd1.Parameters.Add(new MySqlParameter("@in_NTLogin", ntid));
sqlcmd1.Parameters.Add(new MySqlParameter("@in_SMSMsg", Message));
sqlcmd1.Parameters.Add(new MySqlParameter("@in_Workcell", ""));
sqlcmd1.Parameters.Add(new MySqlParameter("@in_SMSTime", System.DateTime.Now));
sqlcmd1.Parameters.Add(new MySqlParameter("@out_Result", MySqlDbType.Int32));
sqlcmd1.Parameters.Add(new MySqlParameter("@out_Message", MySqlDbType.VarChar));
sqlcmd1.Parameters["@out_Result"].Direction = ParameterDirection.Output;
sqlcmd1.Parameters["@out_Message"].Direction = ParameterDirection.Output;
sqlcmd1.ExecuteNonQuery();
int Status = Convert.ToInt16(sqlcmd1.Parameters["@out_Result"].Value);
string retMessage = Convert.ToString(sqlcmd1.Parameters["@out_Result"].Value);
}
Но пока sqlcmd1.ExecuteNonQuery(). Я получаю ниже ошибки:
Неправильное количество аргументов для ПРОЦЕДУРЫ TE_SMS.usp_SendSMS_Insert; ожидаемый 8, получил 0
Я даже проверил параметры в команде до его выполнения. И они доступны в списке параметров. Что мне здесь не хватает?
Вам не нужно делать sqlcmd1.CommandType = CommandType.StoredProcedure; ? – BugFinder
Я добавил его перед вызовом этого кода. но я пропустил, что создал новый экземпляр этой команды ... – Vijay
Так это исправлено сейчас? – BugFinder