I am executing a command in this way :
var Command = new SqlCommand(cmdText, Connection, tr);
Command.ExecuteNonQuery();
In the command th
You catch the SqlException using try/catch
try
{
//.......
Command.ExecuteNonQuery();
}
catch (SqlException ex)
{
log (SqlExceptionMessage(ex).ToString());
}
The following Method Catch details of SqlException which can be logged or displayed to user
public StringBuilder SqlExceptionMessage(SqlException ex)
{
StringBuilder sqlErrorMessages = new StringBuilder("Sql Exception:\n");
foreach (SqlError error in ex.Errors)
{
sqlErrorMessages.AppendFormat("Mesage: {0}\n", error.Message)
.AppendFormat("Severity level: {0}\n", error.Class)
.AppendFormat("State: {0}\n", error.State)
.AppendFormat("Number: {0}\n", error.Number)
.AppendFormat("Procedure: {0}\n", error.Procedure)
.AppendFormat("Source: {0}\n", error.Source)
.AppendFormat("LineNumber: {0}\n", error.LineNumber)
.AppendFormat("Server: {0}\n", error.Server)
.AppendLine(new string('-',error.Message.Length+7));
}
return sqlErrorMessages;
}
The Generated message look like:
Sql Exception:
Mesage: Error converting data type nvarchar to datetime.
Severity level: 16
State: 5
Number: 8114
Procedure: Sales by Year
Source: .Net SqlClient Data Provider
LineNumber: 0
Server: myserver
-------------------------------------------------------