我正在使用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();
还有什么我应该做的 - 谢谢你?
答案 0 :(得分:2)
您必须使用sql格式的字符串:
string sqlFormattedDate = myDateTime.ToString("yyyy-MM-dd HH:mm:ss");
更新
今天我更喜欢带有Type Safety的AddWithValue而没有任何转换:
cmd.Parameters.AddWithValue("@ActivityStart", ClsVariables.DatActivityStart);