我正在构建一个应用程序,当我按下按钮时,操作需要保存在 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、SQLite ...
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句