SQL连接错误消息
问题描述:
我想在引发异常时将错误消息记录到数据库。这个想法是将异常记录到数据库中,以便稍后进行调查。SQL连接错误消息
这是代码:
private void btnGroundMVC_Click(object sender, RoutedEventArgs e)
{
try
{
Process.Start(Library.paiplib.GroundMVC);
}
catch (Exception ex)
{
SqlConnection sqlconn = new SqlConnection(connectionString);
String timeStamp = Library.staticlib.getTimestamp(DateTime.Now);
SqlCommand cmd = new SqlCommand(errorlog, sqlconn);
cmd.Parameters.AddWithValue("@timeStamp", timeStamp);
cmd.Parameters.AddWithValue("@ex", ex);
sqlconn.Open();
cmd.ExecuteNonQuery();
sqlconn.Close();
MessageBox.Show(Library.paiplib.error + ex,"Error Loading PAIP", MessageBoxButton.OK,MessageBoxImage.Error);
}
这是在调试时的错误消息:
“类型 'System.ArgumentException' 的未处理的异常发生在 System.Data.dll中
附加信息:不存在从对象类型 System.ArgumentException到已知托管提供程序本机类型的映射。
此说,这是在cmd.ExecuteNonQuery();
答
错误是相当清楚的:SQL Server提供不知道的Exception
兼容列类型。
如果你只是想保存异常的字符串表示:
cmd.Parameters.AddWithValue("@ex", ex.ToString());
答
我会用
cmd.Parameters.Add("@ex", SqlDbType.NVarChar).Value
+0
错误与op没有指定的数据类型有关。宣布正确的类型将消除这一点 – simon1230756
谢谢@CodeCaster。将其转换为一个字符串工作。 –