【问题标题】:SQL Syntax error on his computer, but not on mine?在他的计算机上出现 SQL 语法错误,但在我的计算机上却没有?
【发布时间】: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。事实上,这是完整的错误。您能否详细说明如何使其显示更多信息。这确实会使这一切变得容易得多。谢谢!

标签: c# mysql sql syntax


【解决方案1】:

如果你想了解: - 为您的 2 个查询而不是 sql 注入创建两个存储过程 为什么? 因为: - 存储过程很容易在 MySql 数据库上测试,如果它可以工作,它可以在任何地方工作 - 尝试使用 c# sql 进行调试是一个糟糕的 id,就像你的帖子显示的那样很挑剔 ;-)

【讨论】:

  • 我明白你的意思。但是这些查询中传递的值在我的 comp 中是完全相同的,因为我导出了整个 .sql。
【解决方案2】:

对,所以我又经历了一遍,发现人为因素的缺失又来了。我忘了用 .sql 导出实际的 DATA,这对我来说真的很迟钝,现在是凌晨 03:00 .. 感谢您尝试帮助我解决这个愚蠢的问题,非常感谢。

弗雷德里克

【讨论】:

    猜你喜欢
    • 2014-03-28
    • 1970-01-01
    • 2022-11-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-08-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多