如何让csharp sqlite为重复项或外键约束冲突抛出异常
我目前正在使用csharp sqlite。在SQLite数据库中,我有一些唯一性和外键约束。但是,当我向表中写入“副本”时,不会引发异常,我发现检查异常的唯一方法是使用以下内容:如何让csharp sqlite为重复项或外键约束冲突抛出异常,sqlite,Sqlite,我目前正在使用csharp sqlite。在SQLite数据库中,我有一些唯一性和外键约束。但是,当我向表中写入“副本”时,不会引发异常,我发现检查异常的唯一方法是使用以下内容: var error = sqliteCommand.GetLastError(); var sqlstring = "some insert sql"; var command = SqliteCommand(sqlstring); command.Parameters.Add(... some parameter.
var error = sqliteCommand.GetLastError();
var sqlstring = "some insert sql";
var command = SqliteCommand(sqlstring);
command.Parameters.Add(... some parameter...);
using (var sqlConnection = new SqliteConnection(connectionString))
{
try
{
command.ExecuteNonQuery();
}
catch (Exception ex)
{
do something with the exception
}
finally
{
sqlConnection.Close();
}
}
我希望能够做到以下几点:
var error = sqliteCommand.GetLastError();
var sqlstring = "some insert sql";
var command = SqliteCommand(sqlstring);
command.Parameters.Add(... some parameter...);
using (var sqlConnection = new SqliteConnection(connectionString))
{
try
{
command.ExecuteNonQuery();
}
catch (Exception ex)
{
do something with the exception
}
finally
{
sqlConnection.Close();
}
}
“catch”块永远不会被击中,即使
var error = sqliteCommand.GetLastError();
确实返回了我所期望的错误的描述。是否有人知道如何解决这个问题,或者使用csharp sqlite库的标准做法是什么?是否启用了外键?是的,外键已启用。“PRAGMA foreign_keys=ON;”但我还有一个唯一性约束,在测试用例中被违反,并且没有引发异常,但sqlitecommand.GetLastError()确实返回类似“列用户名不唯一”的内容。