向用户返回SQL Server错误
本文关键字:Server 错误 SQL 返回 用户 | 更新日期: 2023-09-27 17:53:49
我想返回SQL Server 2008更新时发生的错误。
现在我想把这个错误显示给用户,这样他就能明白是哪里出错了。
我应该如何在c#中做到这一点?
谢谢 .........
对数据库执行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。