You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用C#向Access数据库插入数据时出现OleDb ExecuteNonQuery语法错误

问题解决:Access插入数据的语法错误

你的问题核心是表名Order是Access的保留关键字,直接使用会触发语法解析错误,和数据类型无关。

修复步骤:

  1. 修改SQL语句,给表名加上方括号[]:
string insert =
    "INSERT INTO [Order] (OrderTime, TableNumber, Cost) " +
    "VALUES (@OrderTime, @TableNumber, @Cost)";
  1. 额外优化建议:
    • 用using语句自动管理数据库连接和命令的资源释放,避免手动关闭可能导致的连接泄漏:
    using (OleDbConnection connection = new OleDbConnection(GlobalData.ConnectionString))
    using (OleDbCommand cmnd = new OleDbCommand(insert, connection))
    {
        cmnd.Parameters.AddWithValue("@OrderTime", currentOrder.OrderDateTime.ToString());
        cmnd.Parameters.AddWithValue("@TableNumber", currentOrder.TableNumber.ToString());
        cmnd.Parameters.AddWithValue("@Cost", currentOrder.Cost);
    
        connection.Open();
        cmnd.ExecuteNonQuery();
    }
    
    • 虽然你把OrderTime设为字符串类型,但如果后续要做时间相关查询,建议改为Access的DateTime类型,直接传入DateTime对象而非字符串,避免格式问题:
      cmnd.Parameters.AddWithValue("@OrderTime", currentOrder.OrderDateTime);
      

内容的提问来源于stack exchange,提问作者los

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.24 00:12:35