2014-02-06 93 views
1

我有一個很奇特的錯誤的DateTime提取物...問題與SQLite數據庫C#WPF

我有兩個窄等於類,從SQLite數據庫

我日期保存爲DATETIME兩種提取數據SQLite數據庫。 我的第一個,包含此方法加載DATAS

private void LoadData() 
     { 
      SetConnection(); 
      sql_con.Open(); 
      sql_cmd = sql_con.CreateCommand(); 
      string CommandText = "select ID,Name,Solde,Last_Update from Comptes"; 
      sql_cmd.CommandText = CommandText; 
      SQLiteDataReader reader = sql_cmd.ExecuteReader(); 
      while (reader.Read()) 
      { 
       Compte compte = new Compte(); 
       compte.ID = reader.GetInt16(reader.GetOrdinal("ID")); 
       compte.Nom = reader.GetString(reader.GetOrdinal("Name")); 
       compte.Solde = reader.GetDouble(reader.GetOrdinal("Solde")); 
       string to = reader.GetString(reader.GetOrdinal("Last_Update")); 
       DateTime dt=DateTime.ParseExact(reader.GetString(reader.GetOrdinal("Last_Update")),"yyyy-MM-dd hh:mm:ss",CultureInfo.InvariantCulture); 
       compte.Last_Update = dt; 
       this.Comptes.Add(compte); 

      } 
      sql_con.Close(); 
     } 

第二個:

private void ExecuteQuery(string txtQuery) 
     { 
      SetConnection(); 
      sql_con.Open(); 
      sql_cmd = sql_con.CreateCommand(); 
      sql_cmd.CommandText = txtQuery; 
      sql_cmd.ExecuteNonQuery(); 
      sql_con.Close(); 
     } 

     private void LoadData() 
     { 
      SetConnection(); 
      sql_con.Open(); 
      sql_cmd = sql_con.CreateCommand(); 
      string CommandText = "SELECT ID,Montant,ID_Emetteur,ID_Recepteur,Description,Date FROM Mouvements"; 
      sql_cmd.CommandText = CommandText; 
      SQLiteDataReader reader = sql_cmd.ExecuteReader(); 
      while (reader.Read()) 
      { 
       Mouvement mouvement = new Mouvement(); 
       mouvement.ID = reader.GetInt16(reader.GetOrdinal("ID")); 
       mouvement.Montant=reader.GetDouble(reader.GetOrdinal("Montant")); 
       mouvement.ID_Emetteur=reader.GetInt32(reader.GetOrdinal("ID_Emetteur")); 
       mouvement.ID_Recepteur=reader.GetInt32(reader.GetOrdinal("ID_Recepteur")); 
       mouvement.Description=reader.GetString(reader.GetOrdinal("Description")); 
       String out_date = reader.GetString(reader.GetOrdinal("Date")); 
       try 
       { 
        DateTime dt = DateTime.ParseExact(out_date, "yyyy-MM-dd hh:mm:ss", CultureInfo.InvariantCulture); 
       } 
       catch (Exception ex) { } 
       this.Mouvements.Add(mouvement); 

      } 
      sql_con.Close(); 
     } 

第一種方法的工作原理,但第二個讓我靠近嘗試捕捉異常。 格式完全相同。

A Debugger Capture here

希望有人能夠幫助我!

+0

什麼說的例外? –

+0

爲什麼你將字段取出爲字符串,然後解析它? – Aron

+0

因爲GetDateTime方法對我不起作用。發生異常。 – FrsECM

回答

2

如果你想使用24小時的時間,你需要在你的格式字符串中使用HH。 hh是12小時的時間,提供的時間大於12,所以拋出異常。這將工作。

DateTime dt = DateTime.ParseExact(out_date, "yyyy-MM-dd HH:mm:ss", CultureInfo.InvariantCulture); 
+0

非常感謝!就是這樣! – FrsECM