向SQLite插入日期

时间:2014-04-08 07:51:14

标签: c# sqlite

我正在使用WPF/C#&编写一个小应用程序SQLITE

其中一个函数将包含两个日期/时间值的记录插入table

我想知道是否有正确的方法(确保日期/月份字段一致存储)。

我创建了一个INSERT查询,它使用参数和日期变量(clsVariables.DatActivityEnd = DateTime.Now;)。

        String cntnStr = ClsVariables.StrDb;
        var connection = new SQLiteConnection(cntnStr);
        connection.Open();
        using (SQLiteCommand cmd = connection.CreateCommand())
        {
            cmd.CommandText =
                "INSERT INTO tblActivity ([Activity_Category], [Activity_Category_Sub], [Activity_Start], [Activity_End], [Activity_Duration]) VALUES (@ActivityCategory, @ActivityCategorySub, @ActivityStart, @ActivityEnd, @ActivityDuration);";
            cmd.Parameters.Add(new SQLiteParameter("@ActivityCategory", ClsVariables.StrActivityCurrent));
            cmd.Parameters.Add(new SQLiteParameter("@ActivityCategorySub", ClsVariables.StrActivitySubCurrent));
            cmd.Parameters.Add(new SQLiteParameter("@ActivityStart", ClsVariables.DatActivityStart.ToString()));
            cmd.Parameters.Add(new SQLiteParameter("@ActivityEnd", ClsVariables.DatActivityEnd.ToString()));
            cmd.Parameters.Add(new SQLiteParameter("@ActivityDuration", ClsVariables.DblActivityDuration));
            cmd.ExecuteNonQuery();
        }
        connection.Close();

还有什么我应该做的 - 谢谢你?

1 个答案:

答案 0 :(得分:2)

您必须使用sql格式的字符串:

string sqlFormattedDate = myDateTime.ToString("yyyy-MM-dd HH:mm:ss");

更新

今天我更喜欢带有Type Safety的AddWithValue而没有任何转换:

cmd.Parameters.AddWithValue("@ActivityStart", ClsVariables.DatActivityStart);