我编写了一个具有SQLite支持的CLI应用程序。为此,我使用了SQLite开发团队的NuGet包“ System.Data.SQLite”。 一切正常,但是在出现异常的情况下如何取消“ Extended Result Codes (Look at point 5)”呢?
我可以访问Enum SQLiteErrorCode中的所有错误代码,但“ ex.ResultCode”中始终为Primary Result Code (Look at point 4)。
例如
items
.filter(it => it.calories > 2) // native methods can be used, they return Item instances, not Arrays
.isHealthy() // our custom methods also work
.map(it => it.name)[0] //its a regular array with indices.
有人可以帮我吗?
答案 0 :(得分:1)
此功能是从1.0.70.0版本开始添加的:
https://system.data.sqlite.org/index.html/doc/trunk/www/news.wiki
1.0.70.0-2011年4月22日
增加了对sqlite3_extended_result_codes(),sqlite3_errcode(), 和sqlite3_extended_errcode()通过SetExtendedResultCodes(), ResultCode()和ExtendedResultCode()。增加了对 通过SQLiteLogEventHandler()进行SQLITE_CONFIG_LOG。
要使用它:
conn.Open();
conn.SetExtendedResultCodes(true);
您可以捕获到异常:
if (ex.ResultCode == SQLiteErrorCode.Constraint_Unique)
{
Debug.Write("SQLiteError: " + ex.Message);
}