正在将日期插入访问数据库

本文关键字:访问 数据库 插入 日期 | 更新日期: 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值,该值将是当前系统日期。