【发布时间】:2012-08-02 01:44:01
【问题描述】:
我正在开发一个应用程序,它不时执行查询以从我的 MySQL 数据库中检索数据。我最近请一个朋友试一试,以检查它是否正常工作……显然不能。它始于他的应用程序在启动后立即停止响应。我认为我们必须以某种方式对其进行调试,因此我将 Program.cs 中的 Main() 方法包装在 try..catch 语句中。返回错误“”您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,以获取在第 1 行“”附近使用的正确语法。现在我已将此错误缩小到两个可能的查询。他们在这里:
查询 1:
"SELECT COUNT(*) FROM " + newsTable + " ;"
newsTable 包含:新闻
查询 2:
"SELECT " + newsTitle + ", " + newsAuth + " FROM " + newsTable + " ORDER BY " + newsID + " DESC LIMIT " + countnews + ", " + countnews + 1 + ";"
它们都包含字符串,除了 countnews 变量包含一个整数。
所有这一切的奇怪之处在于,当我在我的计算机上启动应用程序时,这个错误从未发生过,但工作得很好。他刚刚更新了 MySQL,我们在同一个 .NET 框架上,4。
我没有想法!
提前致谢,
弗雷德里克
PS:值得注意的是,这两个查询都位于我的表单应用程序的 Main() 方法中。当然是放在 InitializeComponent();
【问题讨论】:
-
每台机器上的数据库架构是否相同?另外,您同事的机器上是否有来自 MySQL 的确切错误?
-
您需要通过查看有问题的查询来进一步缩小范围。您的列名和表名似乎是动态的(它们是在哪里定义的?)并且很可能错误出现在这些名称中。
-
"将其缩小到两个可能的查询" - 您需要做的就是正确处理异常,您将拥有一切:堆栈跟踪、行号、错误文本等。我最预兆的事情要查看的是:您尝试执行的确切查询是什么。由于您是在运行时构建它,我们无法告诉您..
-
我们两台电脑的数据库结构完全相同。与值一样,我将所有内容导出为 .sql。事实上,这是完整的错误。您能否详细说明如何使其显示更多信息。这确实会使这一切变得容易得多。谢谢!