







|
MySQL.RU - Webboard
Вернуться
Вызов хранимой процедуры из C# (Godfather) 26/04/2007 - 11:36:31
Re: Вызов хранимой процедуры из C# (Sergey) 27/07/2011 - 21:48:31
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'" если в самом вызове.
Что я неправильно делаю?
[Это сообщение - спам!]
Последние сообщения из форума
Уважаемые посетители форума MySQL.RU!
Убедительная просьба, прежде чем задавать свой вопрос в этом форуме, обратите внимание на разделы:
- ответы на наиболее часто задаваемые вопросы - FAQ
- раздел документация
- раздел поиск по сообщениям форума и документации
Также, старайтесь наиболее подробно указывать свою ситуацию (версию операционной системы, версию MySQL,
версию программного обеспечения, по которому возникает вопрос, текст возникающих ошибок, и др.)
Помните, чем конкретнее Вы опишете ситуацию, тем больше шансов получить реальную помощь.
39303
|
|