【问题标题】:Find position of a SQL Syntax Error from System.Data.ODBC.ODBCException?从 System.Data.ODBC.ODBCException 中查找 SQL 语法错误的位置?
【发布时间】:2012-08-23 20:42:16
【问题描述】:

我的程序的目标是让我们的支持技术人员在以具有有限权限的用户身份登录时,在 Faircom、c-tree Plus 数据库上运行查询。

我的程序正在运行,只要他们的脚本很好,就可以了。

但是当他们有错误的表、列或者更糟糕的语法错误时; System.Data.ODBC.ODBCException 中提供的信息似乎无法让我告诉用户他们需要集中注意力在脚本中的哪一行/位置。

引发错误的行:

OdbcDataReader reader = command.ExecuteReader();

异常消息:

ERROR [2a504] [FairCom][ODBC FairCom Driver 9.3.55632(Build-110208_120517)][ctreeSQL] -20003 Syntax error

异常。来源:

CTODBC9.DLL

Exception.StackTrace:

at System.Data.Odbc.OdbcConnection.HandleError(OdbcHandle hrHandle, RetCode retcode)
   at System.Data.Odbc.OdbcCommand.ExecuteReaderObject(CommandBehavior behavior, String method, Boolean needReader, Object[] methodArguments, SQL_API odbcApiMethod)
   at System.Data.Odbc.OdbcCommand.ExecuteReaderObject(CommandBehavior behavior, String method, Boolean needReader)
   at System.Data.Odbc.OdbcCommand.ExecuteReader(CommandBehavior behavior)
   at System.Data.Odbc.OdbcCommand.ExecuteReader()
   at QueryDentrixDatabase.Form1.RunQuery(String query) in C:\Users\caanderson\Documents\Visual Studio 2010\Projects\...\Form1.cs:line 193

我真的很想提供比“语法错误”更多的信息

【问题讨论】:

标签: c# sql visual-studio-2010 exception-handling odbc


【解决方案1】:

我遇到了这个错误,正如你所说,它很难调试。以下是我为使其适用于我的情况所做的几件事,希望它对其他查看此线程的人有所帮助:

  1. 确保没有';'在 SQL 语句的末尾。
  2. 将命名参数替换为“?”。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-03-02
    • 1970-01-01
    • 2014-01-10
    • 2021-10-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多