ASP .NET с MySQL - синтаксис DeleteCommand не работает

0

Работа над настройкой SqlDataSource, соединяющей базу данных MySQL с ASP.NET GridView.

Команда Delete:

DeleteCommand="DELETE FROM troutetracking WHERE id=?id" 

Параметр Delete:

<DeleteParameters>
     <asp:Parameter Name="id"  Type="Int32" />
</DeleteParameters>

Когда я запускаю ссылку удаления в Gridview, появляется следующее сообщение об ошибке:

MySql.Data.MySqlClient.MySqlException: Параметр '? id' должен быть определен.

Каков правильный синтаксис?

Теги:

2 ответа

0
Лучший ответ

В этом блоге возникла аналогичная проблема:

текст ссылки

Мне нужно было обновить подключение к строке, чтобы она содержала "Разрешить пользовательские переменные = True".

Я сделал это, используя кнопку "Дополнительно" при настройке источника данных.

Запрос на удаление также необходимо настроить следующим образом:

DeleteCommand="DELETE FROM troutetracking WHERE id=@id" 
1

Это описано в Документация MSDN:

Потому что разные продукты базы данных использовать различные разновидности SQL, Синтаксис строки SQL зависит от текущий поставщик ADO.NET, являющийся, который идентифицируется ProviderName свойство. Если SQL string - это параметризованный запрос или команда, синтаксис параметра также зависит от поставщика ADO.NET быть использованным. Например, если поставщиком является System.Data.SqlClient, который является поставщиком по умолчанию для SqlDataSource класс, синтаксис параметра "@parameterName". Однако, если поставщик установлен на System.Data.Odbc или System.Data.OleDb, Заполнитель параметра -??. Для получения дополнительной информации о параметризованные SQL-запросы и команды, см. Использование параметров с SqlDataSource Control.

  • 0
    Спасибо за разъяснения, Реми. Что меня смущает, так это то, что для запроса UPDATE используется синтаксис? Id, но для запроса DELETE? Id не работает.
  • 0
    Синтаксис должен быть одинаковым для обоих, поскольку он основан на том, какой поставщик SQL используется, а не на том, какой тип оператора SQL выполняется.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню