参数'?'必须定义

时间:2014-03-10 18:44:21

标签: mysql asp.net mysql-connector connector-net

我已经制作了一个简单的ASP.NET应用程序来管理MySQL数据库。我一直在使用Visual Studio 2013及其自动生成的元素,如DetailsView,GridView等。该应用程序在本地工作正常(包括我的网站托管的MySQL服务器的查询),但是当我尝试我的网站上的应用程序我收到错误:

参数'?'必须定义

我一直与客户支持人员联系,他们声称,它不是服务器问题,而是一个脚本问题(尽管我说它在本地工作正常)。

.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

但无济于事。而且,似乎

非常感谢任何和所有帮助,因为我已经结束了。谢谢

1 个答案:

答案 0 :(得分:2)

我认为正是这条线造成了问题..

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

它应该是......

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

我相信你需要那里列出的字段。我在几个月内没有使用过MySQL,但这就是我用它来做的事情,这就是我在SQL中的做法。

希望这会有所帮助。