2014-03-10 2 views
1

Я создал простое приложение ASP.NET для управления базой данных MySQL. Я использую Visual Studio 2013 и их автоматически сгенерированные элементы, такие как DetailsView, GridView и т. Д. Приложение работает нормально локально (включая запросы на сервер MySQL, на котором размещается мой сайт), но когда я пытаюсь использовать приложение в своем веб-отеле, я получаю ошибка:Параметр '?' должен быть определен

Параметр '?' должен быть определен

Я был в контакте с поддержкой клиентов, который утверждает, что это не проблема сервера, а скорее сценарий (несмотря на то, что я говорю, что он работает нормально локально).

Пример из моего SqlDataSource на странице .aspx выглядит следующим образом:

InsertCommand="INSERT INTO categories (overName, categoryID) VALUES (?, ?)" 

<InsertParameters> 
       <asp:Parameter Name="overName" Type="String" /> 
       <asp:Parameter Name="categoryID" Type="Int32" /> 
</InsertParameters> 

По собственной ошибке сайте MySQL, это было проблемой в более ранних версиях соединителя MySQL:

http://bugs.mysql.com/bug.php?id=66060

однако мы используем версию 6.8.3. Другой, казалось бы, жизнеспособное решение я нашел было

http://blog.tjitjing.com/index.php/2009/05/mysqldatamysqlclientmysqlexception-parameter-id-must-be-defined.html

, но безрезультатно. Также, кажется

Любая помощь очень ценится, потому что я нахожусь в конце wit. Спасибо

+1

Можете ли вы просто использовать '(@overName, @categoryID)' вместо '(?,?)'? – user2864740

ответ

2

Я думаю, что это эта линия вызывает проблемы ..

InsertCommand="INSERT INTO categories (overName, categoryID) VALUES (?, ?)" 

Это должно быть что-то вроде ..

InsertCommand="INSERT INTO categories (overName, categoryID) VALUES (?overName, ?categoryID)" 

Я считаю, что вам нужны поля, перечисленные там. Я не использовал MySQL через несколько месяцев, но именно так я и использую это, и именно так я это делаю в SQL.

Надеюсь, это поможет.

+0

Спасибо, это помогло. У меня создалось впечатление, что вопросительные знаки будут просто принимать параметр, который был передан в хронологическом порядке, т. Е.?? будет автоматически принимать overName и categoryID, следовательно, термин «неназванные параметры», но, я думаю, нет. – jhm

Смежные вопросы