Новости
Документация
Download
Webboard
Поиск
FAQ/ЧаВо
Обратная связь




MySQL.RU - Webboard



Вернуться
Вызов хранимой процедуры из C# (Godfather) 26/04/2007 - 11:36:31
      Re: Вызов хранимой процедуры из C# (Sergey) 27/07/2011 - 21:48:31

> Original message text:
> From: Godfather - 26/04/2007 - 11:36:31
> Subject:Вызов хранимой процедуры из C#
> -----------------
> Добрый день! Я C#-программист и только начал использовать хранимые процедуры в MySQL. Помогите, пожалуйста, решить проблему, которая у меня возникла в самом начале.
>
> Есть хранимая процедура. Я её создаю кодом, но проверил и через GUI Administrator.
>
> CREATE PROCEDURE `sp_GetAll`(IN foo VARCHAR(255))
> BEGIN
> SELECT * FROM foo;
> END
>
> Код C#:
>
> OdbcCommand cmdGet = new OdbcCommand();
> cmdGet.Connection = odbcConnection; // уже созданное и открытое соединение. обычные запросы работают на ура!
> cmdGet.CommandType = CommandType.StoredProcedure;
> cmdGet.CommandText = "CALL sp_GetAll";
>
> OdbcParameter paramTableName = new OdbcParameter("foo", OdbcType.VarChar, 255);
> paramTableName.Value = "some_table";
> paramTableName.Direction = ParameterDirection.Input;
> cmdGet.Parameters.Add(paramTableName);
>
> OdbcDataReader readerGet = cmdGet.ExecuteReader();
>
> Вопрос: как правильно передавать параметр?
> Я пробовал через .Parameters.Add(), через .Parameters[""] и при вызове самой процедуры в sp_GetAll("sometable");
>
> Что значат символы @ ? или без в начале имени параметра (в доках на mysql.com я об этом ни слова не нашёл)
>
> Играет ли роль использование не MySQL .NET Connector'а а System.Data.Odbc-методов? (в строке соединения указан драйвер ODBC 3.51)
>
> Выдаёт две ошибки: либо "Incorected number of arguments for PROCEDURE mydb.sp_GetAll; expected 1, got 0." (если параметры указывать через словарь Paramaters) или "Uknown column 'sometable' in 'field list'" если в самом вызове.
>
> Что я неправильно делаю?
>


From: Sergey - 27/07/2011 - 21:48:31
Subject:Вызов хранимой процедуры из C#
-----------------
cmd.Parameters.Add("inYear", MySqlDbType.Int32);
cmd.Parameters["inYear"].Value =2011;
.......
cmd.CommandText="p_clients_in_otd"; // Без CALL


[Это сообщение - спам!]

Последние сообщения из форума

Уважаемые посетители форума MySQL.RU!
Убедительная просьба, прежде чем задавать свой вопрос в этом форуме, обратите внимание на разделы:
- ответы на наиболее часто задаваемые вопросы - FAQ
- раздел документация
- раздел поиск по сообщениям форума и документации
Также, старайтесь наиболее подробно указывать свою ситуацию (версию операционной системы, версию MySQL, версию программного обеспечения, по которому возникает вопрос, текст возникающих ошибок, и др.)
Помните, чем конкретнее Вы опишете ситуацию, тем больше шансов получить реальную помощь.
 Имя:
 E-mail:
 Тема:
 Текст:
Код подтверждения отправки: Code
39303



РЕКЛАМА НА САЙТЕ
  Создание сайтов | |