1

MySQL データベースを管理するための単純な ASP.NET アプリを作成しました。Visual Studio 2013 と、DetailsView、GridView などの自動生成された要素を使用してきました。アプリはローカルで正常に動作します (サイトがホストされている MySQL サーバーへのクエリを含む) が、Webhotel でアプリを試してみると、エラー:

パラメータ「?」定義する必要があります

サーバーの問題ではなく、スクリプトの問題であると主張するカスタマーサポートと連絡を取り合っています(ローカルでは問題なく動作すると言っていますが)。

.aspx ページの SqlDataSource の例は次のようになります。

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

しかし、役に立たない。また、どうやら

私は機知に富んでいるので、どんな助けも大歓迎です。ありがとうございました

4

1 に答える 1

2

問題を引き起こしているのはこの行だと思います..

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

それは次のようなものでなければなりません..

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

そこにリストされているフィールドが必要だと思います。私は数か月間 MySQL を使用していませんが、それが当時の私のやり方であり、これが SQL でのやり方です。

お役に立てれば。

于 2014-03-10T18:49:12.403 に答える