正在将日期插入访问数据库
本文关键字:访问 数据库 插入 日期 | 更新日期: 2023-09-27 18:21:45
我在访问中插入日期时遇到问题,访问中的数据类型为date/Time(常规日期)。我希望它能插入今天的日期,这样我以后就可以打电话给它,计算出已经过去了多少天(我知道如何使用时间跨度)。因此,请告诉我保存访问日期的正确方法。Thanx
ps。我不需要时间,只需要日期
DateTime dateNow = DateTime.Now;
string connString = (@"Provider=Microsoft.Jet.OLEDB.4.0; Data Source=|DataDirectory|HorseDB.mdb");
OleDbConnection conn = new OleDbConnection(connString);
conn.Open();
OleDbCommand cmd = conn.CreateCommand();
OleDbCommand cmdSelect = conn.CreateCommand();
cmd.CommandText = @"INSERT INTO [Users] (PaidDate) VALUES (@PaidDate) WHERE [UserId] = @OrderId";
cmd.Parameters.AddWithValue("@PaidDate", dateNow);
cmd.Parameters.AddWithValue("@OrderId", orderId);
cmd.ExecuteNonQuery();
conn.Close();
有时您的设备DateTime格式不适合DB,使用以下DateTime格式总是被DB接受。
替换传递日期参数,如下所示:
cmd.Parameters.AddWithValue("@PaidDate", dateNow.ToString("yyyyMMdd"));
我怀疑您正在寻找UPDATE
而不是INSERT
,如果您想用当前日期更新UserID
的行:
cmd.CommandText = @"UPDATE [Users] SET PaidDate = @PaidDate WHERE [UserId] = @OrderId";
cmd.Parameters.AddWithValue("@PaidDate", dateNow);
cmd.Parameters.AddWithValue("@OrderId", orderId);
cmd.ExecuteNonQuery();
如果您实际上要将INSERT
作为一整行,则需要使用INSERT
:的正确语法
cmd.CommandText = @"INSERT INTO [Users] (PaidDate, OrderID) VALUES (@PaidDate, @OrderId)";
cmd.Parameters.AddWithValue("@PaidDate", dateNow);
cmd.Parameters.AddWithValue("@OrderId", orderId);
cmd.ExecuteNonQuery();
试试这个:
string connString = (@"Provider=Microsoft.Jet.OLEDB.4.0; Data Source=|DataDirectory|HorseDB.mdb");
OleDbConnection conn = new OleDbConnection(connString);
conn.Open();
OleDbCommand cmd = conn.CreateCommand();
OleDbCommand cmdSelect = conn.CreateCommand();
cmd.CommandText = @"INSERT INTO [Users] (PaidDate) VALUES (@PaidDate) WHERE [UserId] = @OrderId";
cmd.Parameters.AddWithValue("@PaidDate", Date());
cmd.Parameters.AddWithValue("@OrderId", orderId);
cmd.ExecuteNonQuery();
conn.Close();
因为您使用的是Jet连接字符串,所以它可以读取Date()的MSAccess值,该值将是当前系统日期。