2016-09-01 64 views
0

我有一個程序使用SQLite數據庫,它需要在到期日期之後刪除一行,它是低於當前時間。我試圖與之交互的表中有一個字段的ID,姓名,有效期,高考日期,代碼的costumers,每個客戶都有不同的到期日,該數據是通過使用檢索:自動刪除在SQLite數據庫中的過期日期後的行c#

日期時間。 Now.AddDays(numberofdaysstaying)

和當前時間是通過使用檢索到:

DateTime.Now

我的SQL代碼是在一個名爲sqlManager不同的類和函數執行我使用自動刪除是:

 public void Autodelete() 
    { 
     using (SQLiteConnection sqlConn = new SQLiteConnection("Data Source=projecto.sqlite;Version=3;")) 
     { 
      sqlConn.Open(); 
      //create command 
      SQLiteCommand sqlCommand = new SQLiteCommand("DELETE FROM cliente WHERE expirationDate < @td", sqlConn); 
      sqlCommand.Parameters.AddWithValue(Datetime.Now)); 

      sqlCommand.ExecuteNonQuery(); 
     } 

,這是否真的沒什麼,沒有異常或類似的東西...它只是不刪除一件東西。有關如何使這項工作的任何提示?

+0

@Plutonix作爲一個DateTime – wannabeLearner

+0

@Plutonix是正確的;那麼你如何存儲你的DateTime? –

+0

如果他選擇* datetime *作爲列類型,則* real *列類型按照類型affinity設置爲* numeric *,如文檔中所述https://www.sqlite.org/datatype3.html#section_3_2 –

回答

0

我將使用日期(expirationDate,unixepoch)轉換爲unix時間,然後將它與現在在unix時間的時間進行比較。這應該更容易,因爲unix時間是一個整數。這是自1970-01-01以來的幾秒鐘時間。我已經在下面鏈接了另一個回答如何在C#中獲取unix時間的問題。

How to get the unix timestamp in C#

+0

工作對我來說,雖然它使一些有趣的代碼。 – wannabeLearner

相關問題