更新数据库时,SQLITE切断零

时间:2019-10-21 06:37:56

标签: c# sql sqlite

我正在C#中使用Sqlite数据库,当我将日期插入数据库时​​,一切正常(格式为MM.YYYY)。不过,当我更新数据库时,sqlite 会截去前导零,因此09.2019会显示为9.2019。但是对于进一步的操作而言,重要的是要保留前导零。

创建表“ credits”时,我使用TEXT作为存储日期。

我向您展示了一些如何更新数据库的代码:

SQLiteCommand command = new SQLiteCommand(databaseConnection);

command.CommandText = "Update credits Set lastDate = " + date +
     " WHERE ID=" + Convert.ToString(index);

command.ExecuteScalar();

1 个答案:

答案 0 :(得分:3)

尝试参数化您的查询;您只需要提供date并让RDBMS进行工作(包括格式,表示形式等)即可。

// using - do not forget to Dispose (i.e. free resources)
using (SQLiteCommand command = new SQLiteCommand(databaseConnection)) {
  // Do not build query, but parametrize it
  command.CommandText = 
     @"update credits 
          set lastDate = @prm_Date
        where ID = @prm_ID";

  // Parameters instead hardcoding
  //TODO: better put command.Parameters.Add(Name, Value, Type)
  command.Parameters.AddWithValue("@prm_Date", date);
  command.Parameters.AddWithValue("@prm_ID", index);

  // Non query : we don't want to return even a single value, right?
  command.ExecuteNonQuery();
}