SQLParameter не работает должным образом - PullRequest
3 голосов
/ 05 апреля 2010

Я пытаюсь получить доступ к хранимой процедуре и получаю сообщение об ошибке:

Процедура или функция 'getbug' ожидает параметр '@bugID', который не был предоставлен.

Это мой код для вызова процедуры.

SqlCommand cmd = new SqlCommand("getbug", cn);
cmd.Parameters.Add(new SqlParameter("bugID", bugID));

bugID установлен как 1089 (и имеет тип int)

Я не могу понять, почему это не сработает.

Ответы [ 3 ]

4 голосов
/ 05 апреля 2010

Попробуйте вместо этого

SqlCommand cmd = new SqlCommand("getbug", cn);
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.Add(new SqlParameter("@bugID", bugID));
2 голосов
/ 05 апреля 2010

Попробуйте добавить «@» к параметру

SqlCommand cmd = new SqlCommand("getbug", cn);
cmd.Parameters.Add(new SqlParameter("@bugID", bugID));
1 голос
/ 05 апреля 2010

Еще код поможет. Вот несколько идей.

Если вы вызываете хранимую процедуру, вам нужно указать CommandType. Кроме того, вы можете использовать метод AddWithValue для сокращения кода.

using (var cn = new SqlConnection("your connection string"))
{
    using (var cmd = new SqlCommand("getbug", cn))
    {
        cmd.CommandType = CommandType.StoredProcedure;
        cmd.Parameters.AddWithValue("@bugID", bugID);

        //etc...
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...