标签: updateexception

如何确定SQLite UpdateException上的正确约束违规?

我有我的本地SQLite数据库有以下问题.我正在尝试使用在线SQL-Server数据库更新通过同步过程存储的数据.虽然同步化没有问题,但在尝试更新本地值时经常会遇到错误.例如,每个表上可能存在违反现有Primary-Key-Constraints的情况.另一方面,在具体的桌子上也可能违反了Unique-Key.

我的问题是如何找出发生了哪种类型的错误.

我抓住数据库更新或插入之类的

catch(UpdateException ue)
{
    HandleUpdateException(ue);
}
Run Code Online (Sandbox Code Playgroud)

handle方法如下:

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;
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

我现在该怎么发生错误?重要的是要知道,因为PK违规的处理完全不是违反英国的行为.

我可以试着做

if(e.Message.Contains("unique")) // ...
Run Code Online (Sandbox Code Playgroud)

要么

if(e.Message.Contains("foreign")) // ...
Run Code Online (Sandbox Code Playgroud)

但我不喜欢用"魔法"字符串检查这种错误.

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

c# database sqlite try-catch updateexception

7
推荐指数
0
解决办法
1937
查看次数

如何处理UpdateException?

我需要处理异常重复.

var resource = new Resource() { url = tbUrl.Text };
try
{
    context.Resource.AddObject(resource);
    context.SaveChanges();
}   
catch(UpdateException ex)
{
    // how to know exactly which is why the error occurred
}
catch (Exception ex)
{

    throw;
}
Run Code Online (Sandbox Code Playgroud)

更新:

我需要捕获当我尝试不添加唯一值时发生的错误.UpdateException - 在添加数据时出错.

c# entity-framework-4 updateexception

4
推荐指数
1
解决办法
6733
查看次数