1

我制作了一个简单的 ASP.NET 应用程序来管理 MySQL 数据库。我一直在使用 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 回答