简体   繁体   English

C# 和 ms 数据库 - 标准表达式中的数据类型不匹配

[英]C# and ms database - Data type mismatch in criteria expression

I am building an application where when i press an button the action need to be save in a Microsoft Access Database, but when i press the button i get the error "Data type mismatch in criteria expression" from the next part of code我正在构建一个应用程序,当我按下按钮时,操作需要保存在 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();

I don't know what your datatypes are but guessing partially from code:我不知道您的数据类型是什么,但部分从代码中猜测:

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: Just a suggestion, choose a better database like postgreSQL, MS SQL, MySQL, SQLite... PS:只是一个建议,选择一个更好的数据库,如 postgreSQL,MS SQL,MySQL,Z497757A9C5B2ECC78DEDZ65...

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM