在我的访问数据库中,我有列timeStamp(Text),我想存储当前的日期和时间。访问db看起来像
mClient.connect();
在c#中,我是通过
完成的Id(autonumber) userName(text) Est_id(Number) timeStamp(text)
timeStamp是一个文本,但每次运行查询时都会出错。我应该改变什么?如果我不添加timeStamp一切都很完美
string time = DateTime.Now.ToString("HH:mm:ss");
string date = DateTime.Today.ToString("dd-MM-yyyy");
string my_querry = "INSERT INTO savedSession (userName, Est_id, timeStamp) VALUES(@userName,@Est_id,@timeStamp)";
OleDbCommand cmd = new OleDbCommand(my_querry, conn);
cmd.Parameters.AddWithValue("@userName", userName);
cmd.Parameters.AddWithValue("@Est_id", est_index);
cmd.Parameters.AddWithValue("@timeStamp", (date+" "+time));
cmd.ExecuteNonQuery();
答案 0 :(得分:0)
NullReferenceException对您提供的代码没有任何意义。
尝试的一件事是将时间戳字符串连接到添加参数的位置之外,然后在parameters.AddWithValue方法中使用单个变量。
我能想到的另一件事是,格式化时间戳的方式与数据库中列的正确格式不一致。如果您的列是DateTime类型,那么您的格式而不是C#与访问所需的正确屏蔽不匹配。
答案 1 :(得分:0)
使用 AddWithValue 时,您必须提供DateTime 值:
cmd.Parameters.AddWithValue("@timeStamp", DateTime.Now);