0
 public string bookno(string id, string un, DateTime date, string time, string reason)
    {
        using (OleDbConnection source = new OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" +
       Environment.CurrentDirectory + "\\IOOPAssignment.accdb"))
        {


                OleDbCommand insert = new OleDbCommand();
                insert.CommandText = "INSERT INTO [Pending_List] Values('" + id + "','" + un + "','#" + date + "#','" + time + "','" + reason + "','Nothing',0,'Pending')";
                source.Open();
                insert.Connection = source;
                insert.CommandType = System.Data.CommandType.Text;
                insert.ExecuteNonQuery();
                return "Success";

        }
    }

错误是:

System.Data.OleDb.OleDbException:“标准表达式中的数据类型不匹配。”

我该如何解决这个错误?

更改后的代码:

 public string bookno(string id, string un, DateTime date, string time, string reason)
    {
        using (OleDbConnection source = new OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" +
       Environment.CurrentDirectory + "\\IOOPAssignment.accdb"))
        {

            source.Open();  

            using (OleDbCommand insert = source .CreateCommand())
            {
                // create command with placeholders
                insert.CommandText =
                   "INSERT INTO [Pending_List] " +
                   "([Class_ID], [User_ID],  [Date], [Time], [Reason],[Description],[Add_Req],[Room_Status]) " +
                   "VALUES(@id,@un,@date,@time,@reason,@describe,@add,@status)";

                // add named parameters
                insert.Parameters.AddRange(new OleDbParameter[]
                {
                     new OleDbParameter("@id", id),
                     new OleDbParameter("@un",un),
                     new OleDbParameter ("@date",date),
                      new OleDbParameter ("@time",time),
                      new OleDbParameter ("@reason",reason),
                     new OleDbParameter ("@describe", "Nothing"),
                      new OleDbParameter ("@add",0),
                      new OleDbParameter ("@status","Pending")
                });

                // execute
                insert.ExecuteNonQuery();
                return "Success";
            }

错误是 System.InvalidOperationException: 'Parameter[6]: the OleDbType property is uninitialized: OleDbType.Empty.'

4

0 回答 0