从c#windows应用程序插入语句时,如何知道特定列是否存在外键违规?

时间:2016-02-10 05:44:05

标签: c# sql-server

我知道如何使用SqlException类从C#代码中识别特定异常。

通过使用SqlException,我在catch块中找到了异常编号,并将其与特定错误编号进行了比较,并向用户编写了自己的用户友好消息。

但是当发生外键违规时,我只是比较547错误号而且我写了外键违规。我认为这不足以向用户显示消息。而不是这个我想要向用户显示外键列。如何获得此专栏?

谢谢

1 个答案:

答案 0 :(得分:0)

您可以像这样解析错误消息

catch (SqlException ex)
{  
    switch (ex.Errors[0].Number)
    {
        case 547: // Foreign Key violation
            string s = ex.Message;
            s = s.Substring(s.IndexOf("column "));
            string[] array = s.Split('.');
            s = array[0].Substring(array[0].IndexOf('\''));               
            break;
    }
}