向用户返回SQL Server错误

本文关键字:Server 错误 SQL 返回 用户 | 更新日期: 2023-09-27 17:53:49

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

现在我想把这个错误显示给用户,这样他就能明白是哪里出错了。

我应该如何在c#中做到这一点?

谢谢 .........

向用户返回SQL Server错误

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

请记住,虽然是用户友好的,但此消息是针对开发人员的。你不应该把它显示给终端用户。

如往常一样,要捕获异常,必须使用try-catch块:
try
{
    SqlConnection conn = null; 
    conn = new SqlConnection(connString);  // connstring is your connection string to the database
    conn.Open(); 
    var strSQLCommand = "SELECT* FROM TABLE";  // statement is wrong! will raise an exception
    var command = new SqlCommand(strSQLCommand, conn); 
    var ret = command.ExecuteScalar(); 
    conn.Close(); 
    return ret; 
}
catch (SqlException e)
{
    Console.WriteLine(e.Message);
}

这个例子当然假设了一个控制台应用程序。

try this

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());
}

SqlException -捕获所有sql异常

尝试使用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)替换Exception。