2011-10-09 47 views
3

System.Data.SQLite遇到SQL语法错误时,的属性唯一给出的相关信息是SQL错误的名称和其附近的关键字/符号。有没有办法获得有关错误的更多信息 - 即发生错误的字符串CommandText中的确切位置(或范围)?从System.Data.SQLite.SQLiteException获取更多信息

它不一定是从SQLiteException - 从SQLiteCommandSQLiteConnection获得该信息也将有所帮助。

回答

1

此异常是由SQL语句中的语法错误引起的。 C#本身不能给你更多的信息。它只是将您的查询传递给SQLite。 SQLite然后解析你的查询并产生一个语法错误。该错误由C#捕获并打包在SQLiteException中。因此,您并不是要求C#为您提供更多信息,但SQLite会提供这些信息。

不幸的是,据我所知(和一些谷歌搜索后)似乎SQLite不能给你更多的信息。我发现的唯一的其他选项是名为SQLite Developer的程序。我没有尝试过,但它说(除了一大堆功能之外)还有一个语法检查器。该页面上该检查器的屏幕截图表明它强调了SQL语句中的语法错误。有一个付费版本和免费软件精简版。你必须亲自看看哪一个是足够的。

+0

我并不期望从C#获取信息 - 我只是想,也许System.Data.SQLite将这些信息存储在某处。不管怎么说,多谢拉! –

+0

那么,我主要在TSQL工作,所以也许有人比我更好的SQLite可以帮助你,但我不会指望它。在TSQL中这也是一个相同的问题,它使调试巨大的SQL语句有时变得非常“有趣”。 –