2011-10-09 48 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語句有時變得非常「有趣」。 –