[英]C# and ms database - Data type mismatch in criteria expression
我正在構建一個應用程序,當我按下按鈕時,操作需要保存在 Microsoft Access 數據庫中,但是當我按下按鈕時,我從代碼的下一部分收到錯誤“標准表達式中的數據類型不匹配”
string dbconnection = "Provider=Microsoft.ACE.OLEDB.12.0;" + @"data source =ElevatorLog.accdb";
string dbcommand = "insert into [Elevator] ([MovingAction],[TimeAction]) values (@movingaction, @timeaction)";
string timeaction = DateTime.Now.ToShortDateString();
listBox1.Items.Add(movingaction + "\t\t" + timeaction + "\t\t");
OleDbConnection conn_db = new OleDbConnection(dbconnection);
OleDbCommand comm_insert = new OleDbCommand(dbcommand, conn_db);
OleDbDataAdapter adapter_insert = new OleDbDataAdapter(comm_insert);
comm_insert.Parameters.AddWithValue("@timeaction", timeaction);
comm_insert.Parameters.AddWithValue("@movingaction", movingaction);
conn_db.Open();
comm_insert.ExecuteNonQuery();
conn_db.Close();
我不知道您的數據類型是什么,但部分從代碼中猜測:
string dbconnection = "Provider=Microsoft.ACE.OLEDB.12.0;" + @"data source =ElevatorLog.accdb";
string dbcommand = @"insert into [Elevator]
([MovingAction],[TimeAction])
values
(@movingaction, @timeaction)";
//? listBox1.Items.Add(movingaction + "\t\t" + timeaction + "\t\t");
using (OleDbConnection conn_db = new OleDbConnection(dbconnection))
using (OleDbCommand comm_insert = new OleDbCommand(dbcommand, conn_db))
{
comm_insert.Parameters.Add("@movingaction", OleDbType.DBDate).Value = movingaction; // not sure if this is DateTime
comm_insert.Parameters.Add("@timeaction", OleDbType.DBDate).Value = DateTime.Now;
conn_db.Open();
comm_insert.ExecuteNonQuery();
conn_db.Close();
}
PS:只是一個建議,選擇一個更好的數據庫,如 postgreSQL,MS SQL,MySQL,Z497757A9C5B2ECC78DEDZ65...
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.