7

我的本地 SQLite 数据库遇到以下问题。我正在尝试使用在线 SQL-Server 数据库更新通过同步过程存储的数据。虽然同步没有问题,但我在尝试更新本地值时经常会遇到错误。例如,每个表上可能存在与现有主键约束的冲突。另一方面,也可能违反了具体表上的唯一键。

我的问题是如何确定发生了哪种类型的错误。

我赶上数据库更新或插入

catch(UpdateException ue)
{
    HandleUpdateException(ue);
}

处理方法如下:

private void HandleUpdateException(UpdateException e)
{
    // get inner exception as SQLiteException
    var innerException = e.InnerException as SQLiteException;

    if(innerException != null)
    {
        switch(innerException.ErrorCode)
        {
            case SQLiteError.Constraint:
                // handle constraint-error here
                break;
            default:
                // log error
                break;
        }
    }
}

我现在怎么知道发生了哪个错误?重要的是要知道,因为对违反 PK 的处理完全不同于违反英国。

我可以试着做

if(e.Message.Contains("unique")) // ...

或者

if(e.Message.Contains("foreign")) // ...

但我不喜欢用“魔术”字符串检查这种错误。

所以任何帮助将不胜感激。

4

0 回答 0