Надеюсь, это не вопрос ServerFault ...
Я работаю над переносом проекта из хранилища данных в XML-сериализации в базу данных MySQL.Я использую пример, предоставленный мне из предыдущего вопроса , на который вчера ответили.
Соединение с использованием phpMyAdmin и MySQL Workbench Я создал хранимую процедуру под названием 'sprocOrderSelectSingleItem'.Похоже, что хорошо работает с MySQL для всех, что я могу сказать.Когда я запускаю SHOW CREATE PROCEDURE sprocOrderSelectSingleItem , он возвращает следующее:
CREATE DEFINER=<code>username
@ %
PROCEDURE sprocOrderSelectSingleItem
(В порядке ID INTEGER) НАЧАЛО ВЫБРАТЬ * ИЗ tblOrders WHERE ID = orderID;END
Мой совместный код ASP.NET выглядит примерно так:
public static Order GetItem(int ID)
{
Order objOrder = null;
using (OdbcConnection objConnection = new OdbcConnection(Utils.ApplicationConfiguration.ConnectionString))
{
OdbcCommand objCommand = new OdbcCommand("sprocOrderSelectSingleItem", objConnection);
objCommand.CommandType = CommandType.StoredProcedure;
objCommand.Parameters.AddWithValue("orderID", ID);
objConnection.Open();
using (OdbcDataReader objReader = objCommand.ExecuteReader())
{
if (objReader.Read())
{
objOrder = FillDataRecord(objReader);
}
objReader.Close();
}
objConnection.Close();
}
return objOrder;
}
При просмотре страницы появляется следующее сообщение об ошибке:
ОШИБКА [42000] [MySQL] [Драйвер ODBC 5.1] [mysqld-5.0.77] У вас есть ошибка в синтаксисе SQL;проверьте руководство, соответствующее вашей версии сервера MySQL, на предмет правильного синтаксиса для использования рядом с 'sprocOrderSelectSingleItem' в строке 1
Действительно не понимая, что может отсутствовать или работать неправильно.Есть ли какие-либо дополнительные тесты, которые я должен / мог бы выполнить, чтобы подтвердить, что все работает на стороне MySQL?Я пропускаю шаг для правильной передачи вызова хранимой процедуры в ASP.NET?Код разбивается на строку:
using (OdbcDataReader objReader = objCommand.ExecuteReader())
Замена строки
OdbcCommand objCommand = new OdbcCommand("sprocOrderSelectSingleItem", objConnection);
на эту вместо
OdbcCommand objCommand = new OdbcCommand("SELECT * FROM tblOrders WHERE ID=" + ID + ";", objConnection);
и все работает как положено.
Спасибо за любую помощь, которую вы, ребята, можете оказать.