我编写了一个支持 SQLite 的 CLI 应用程序。为此,我使用SQLite 开发团队的 NuGet 包“ System.Data.SQLite ”。一切正常,但是如果出现异常,如何检查“扩展结果代码(查看第 5 点) ”?我可以访问 Enum SQLiteErrorCode 中的所有错误代码,但在“ex.ResultCode”中始终是主要结果代码(查看第 4 点)。例如try{ // DB actions ....}catch (SQLiteException ex){ // This is what i want because is clear and easy to read if (ex.ResultCode == SQLiteErrorCode.Constraint_Unique) { Debug.Write("SQLiteError: " + ex.Message); } // This works, but is not nice if (ex.ResultCde == SQLiteErrorCode.Constraint && ex.Message.Contains("UNIQUE")) { Debug.Write("SQLiteError: " + ex.Message); } throw ex;}有人可以帮我吗?
1 回答
繁星coding
TA贡献1797条经验 获得超4个赞
该功能从 1.0.70.0 版本开始添加:
https://system.data.sqlite.org/index.html/doc/trunk/www/news.wiki
1.0.70.0 - 2011 年 4 月 22 日
通过 SetExtendedResultCodes()、ResultCode() 和 ExtendedResultCode() 添加了对 sqlite3_extended_result_codes()、sqlite3_errcode() 和 sqlite3_extended_errcode() 的支持。通过 SQLiteLogEventHandler() 添加了对 SQLITE_CONFIG_LOG 的支持。
要使用它:
conn.Open();
conn.SetExtendedResultCodes(true);
您可以捕获异常:
if (ex.ResultCode == SQLiteErrorCode.Constraint_Unique)
{
Debug.Write("SQLiteError: " + ex.Message);
}
- 1 回答
- 0 关注
- 151 浏览
添加回答
举报
0/150
提交
取消