2012-12-15 35 views
0

我一直試圖讓我的查詢工作一段時間,但它並沒有插入任何東西,也沒有返回任何錯誤。SQL查詢不會被插入

數據庫連接已打開且連接成功。

的表稱爲錯誤日誌,並擁有以下數據

- id (int autoincremental, Primary key, Unique) 
- exception (varchar) 
- time (DateTime) 

exception = String(error message) 
time = DateTime.Now 

下面的代碼:

public void insertError(string error, DateTime time) 
    { 
     SqlCeParameter[] sqlParams = new SqlCeParameter[] 
     { 
      new SqlCeParameter("@exception", error), 
      new SqlCeParameter("@time", time) 
     }; 

     try 
     { 
      cmd = new SqlCeCommand(); 
      cmd.Connection = connection; 
      cmd.CommandType = CommandType.Text; 
      cmd.CommandText = "INSERT INTO errorlog (exception, time) VALUES(@exception, @time)"; 
      cmd.Parameters.AddRange(sqlParams); 
      cmd.ExecuteNonQuery(); 
     } 
     catch (Exception e) 
     { 
      Console.WriteLine(e.Message); 
     } 
    } 

任何幫助,將不勝感激,在此先感謝。

protected DataController() 
    { 
     try 
     { 
      string appPath = System.IO.Path.GetDirectoryName(Assembly.GetAssembly(typeof(DataController)).CodeBase).Replace(@"file:\", "") + @"\"; 
      string strCon = @"Data Source = " + appPath + @"Data\EasyShop.sdf"; 
      connection = new SqlCeConnection(strCon); 
     } 
     catch (Exception e) 
     { 

     } 

     connection.Open(); 
    } 

最後,它被調用的方式:

public bool log(string msg, bool timestamp = true) 
    { 
     DataController dc = DataController.Instance(); 
     dc.insertError(msg, DateTime.Today); 

     return true; 
    } 
+1

time = DateTime,我試着用ToString()來設置DataType爲nVarChar。沒有差別。沒有任何錯誤插入。 – Deejdd

+0

刪除@exception中的引號,然後重試。 – vtortola

+0

重構你的初學者代碼..整個方法看起來是錯誤的,特別是你如何處理參數 – MethodMan

回答

1
  1. 調試您的應用程序,看看是否

    編輯 各地拋出

    繼承人的連接去掉引號connection points exactl y到你想要的 數據庫。另請檢查您是否在同一數據庫中查找插入的記錄 。

  2. 如果您的connection屬於該事務,請檢查它是否已提交。在提交事務之前,您不會看到插入這些記錄。
  3. 在我看來,你INSERT是錯誤的。刪除引號@exception
  4. 打開SQL Server Profiler,連接到您的數據庫並檢查您的INSERT是否顯示在那裏。
+0

- 連接是正確的。 - 正在查詢正確的連接以及調試通過時沒有任何錯誤。還捕捉基於Sql的錯誤。 - @exception無法正常工作(無錯) – Deejdd

+0

對不起格式化,我不熟悉stackoverflow上的格式。 – Deejdd

+0

也許它通過沒有錯誤,但將記錄寫入數據庫與查找插入記錄的數據庫不同。它發生在我工作的地方,我們有不同的邏輯上相同的數據庫副本,只是用於不同的目的。 –