2013-07-09 51 views
0

我無法在訪問中插入日期,在訪問中數據類型是日期/時間(常規日期)。我希望它插入今天的日期,所以我可以稍後調用它,並計算了多少天過去了(我知道如何使用時間跨度)。因此,請告訴我保存訪問日期的正確方法。 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(); 
+0

什麼是您所遇到的具體困難?你是否收到錯誤信息? –

+0

您收到什麼錯誤? –

+0

我沒有得到一個錯誤,日期不存在,當我檢查數據庫 – Cheesy

回答

0

我懷疑你正在尋找一個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(); 
0

試試這個:

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連接字符串,它可以讀取日期()的MSACCESS值,這將是當前系統日期。

2

有時候你的設備DateTime格式不適合DB,使用下面的DateTime格式總是被DB接受。

更換傳遞日期參數如下:

cmd.Parameters.AddWithValue("@PaidDate", dateNow.ToString("yyyyMMdd"));