c# - 如何通过C#在SQLite数据库中写入变量DateTime值?

标签 c# sqlite datetime

我对 C#SQLite 数据库非常陌生,并且有一些变量与 TimeStamp 一起存储在 SQLite 数据库中。 这是我的代码:

    DateTime now = DateTime.Now;
    m_dbConnection = new SQLiteConnection("Data Source=MyDatabase.sqlite;Version=3;");
    m_dbConnection.Open();
    var sql = string.Format("insert into Table (Timestamp) values ({0})", now);
    SQLiteCommand command = new SQLiteCommand(sql, m_dbConnection);
    command.ExecuteNonQuery();

但我收到错误。我猜想,SQLite 不支持 DateTime。我尝试将 DateTime now 转换为 string 但仍然不起作用。

    DateTime now1 = DateTime.Now;
    var now = now1.ToString("hh.mm.ss.fff");
    m_dbConnection = new SQLiteConnection("Data Source=MyDatabase.sqlite;Version=3;");
    m_dbConnection.Open();
    var sql = string.Format("insert into Table (Timestamp) values ({0})", now);
    SQLiteCommand command = new SQLiteCommand(sql, m_dbConnection);
    command.ExecuteNonQuery();

我做错了什么吗?

最佳答案

使用参数避免SQL注入(inject):

var sql = string.Format("insert into Table (Timestamp) values (@now)", now);
SQLiteCommand command = new SQLiteCommand(sql, m_dbConnection);
command.Parameters.AddWithValue("@now",now);

关于c# - 如何通过C#在SQLite数据库中写入变量DateTime值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42512782/

相关文章:

c# - 使用 DataContractJsonSerializer 将字典序列化为 JSON 对象

.net - String.Format(格式,日期)正在忽略格式

iPhone Core Data 不从 Sqlite3 获取任何数据

java - 半月付款频率的增量指定日期为每月 1 日和 16 日

java - 在 Java 中节省纪元时间的最佳方法是什么?

c# - 用于验证多个电子邮件地址的正则表达式

c# - 如何绘制单个像素?

c# - 使用 EF 在 MVC 4 局部 View 上显示相关实体

基于 MySQL 的 PHP SQLite3 分页器给出错误

python-3.x - 我想将 sqlite3 db 从内存复制到硬盘。我能怎么做?