C# 将SQL Server错误返回给用户

C# 将SQL Server错误返回给用户,c#,sql-server,C#,Sql Server,我想返回SQL Server 2008更新时发生的错误 现在我想向用户显示这个错误,这样他就可以理解出了什么问题 我应该如何在c#中执行此操作 谢谢……尝试使用Try,catch子句 诸如此类: try { // Update Code Here } catch (Exception e) { // Error message in e.Message // On a form MessageBox.Show(e.Message, "Error!"); // TextBox text1 i

我想返回SQL Server 2008更新时发生的错误

现在我想向用户显示这个错误,这样他就可以理解出了什么问题

我应该如何在c#中执行此操作


谢谢……

尝试使用Try,catch子句

诸如此类:

try {
// Update Code Here
}
catch (Exception e) {
// Error message in e.Message
// On a form
   MessageBox.Show(e.Message, "Error!");
// TextBox text1 is defined
   text1.Text = e.Message;
   System.Console.WriteLine(e.Message);
}

您可以将异常替换为要捕获的异常类型(SqlException)。

对数据库执行SQL语句时出错会在连接器中引发异常。这些异常属于类型,因此具有包含用户友好的错误描述的Message属性

请记住,虽然这是一条用户友好的消息,但它是针对开发人员的。您不应该将其显示给最终用户

通常,要捕获异常,必须使用:

当然,这个示例假设一个控制台应用程序

试试这个

try
{
      //your sql code
}

catch(SqlException sqlEx)
{
    for (int i = 0; i < ex.Errors.Count; i++)
        {
            errorMessages.Append("Index #" + i + "\n" +
                "Message: " + ex.Errors[i].Message + "\n" +
                "LineNumber: " + ex.Errors[i].LineNumber + "\n" +
                "Source: " + ex.Errors[i].Source + "\n" +
                "Procedure: " + ex.Errors[i].Procedure + "\n");
        }
        Console.WriteLine(errorMessages.ToString());
}
试试看
{
//您的sql代码
}
捕获(SqlException sqlEx)
{
对于(int i=0;i

-它捕获所有sql异常

欢迎使用stackoverflow。请显示您的一些代码。我想显示sql返回的异常。e消息是一个带有可读形式错误的字符串。您可以使用MessageBox.Show(e.Message)在表单上显示它,也可以将它指定为textbox等UI元素的文本值,或者使用System.Console.WriteLine(e.Message)等将它写入控制台。
try
{
      //your sql code
}

catch(SqlException sqlEx)
{
    for (int i = 0; i < ex.Errors.Count; i++)
        {
            errorMessages.Append("Index #" + i + "\n" +
                "Message: " + ex.Errors[i].Message + "\n" +
                "LineNumber: " + ex.Errors[i].LineNumber + "\n" +
                "Source: " + ex.Errors[i].Source + "\n" +
                "Procedure: " + ex.Errors[i].Procedure + "\n");
        }
        Console.WriteLine(errorMessages.ToString());
}