SQL连接错误消息

时间:2015-05-29 10:34:14

标签: c# sql wpf

我在尝试将错误消息记录到数据库时抛出异常。我们的想法是将异常记录到数据库中,以便以后进行调查。

这是代码:

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

2 个答案:

答案 0 :(得分:2)

错误非常明确:SQL Server提供程序不知道Exception兼容的列类型。

如果您只想存储异常的字符串表示形式:

cmd.Parameters.AddWithValue("@ex", ex.ToString());

答案 1 :(得分:-1)

我会用

cmd.Parameters.Add("@ex", SqlDbType.NVarChar).Value