我有一个非常怪异的错误......
我有两个narrow-equals类,用于从sqlite数据库中提取数据
我在两个SQLite数据库中将日期保存为DATETIME。 我的第一个,包含这个加载数据的方法
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();
}
第一种方法有效,但第二种方法在try catch附近给了我一个例外。 格式完全相同。
希望有人能够帮助我!
答案 0 :(得分:2)
如果您想使用24小时制,则需要在格式字符串中使用HH。 hh是12小时的时间,所提供的时间是> 12,抛出异常。这将有效。
DateTime dt = DateTime.ParseExact(out_date, "yyyy-MM-dd HH:mm:ss", CultureInfo.InvariantCulture);