【发布时间】:2015-11-13 19:15:30
【问题描述】:
异常详细信息:System.Data.OleDb.OleDbException:INSERT INTO 语句中的语法错误。
来源错误:
第 168 行:comm.Parameters.Add(param);
第 169 行:
第 170 行:int totalCount = comm.ExecuteNonQuery();
第 171 行:conn.Close();
第 172 行:
当代码运行到以下方法时,我不断收到错误消息“INSERT INTO 语句中的语法错误”:
protected void makeOrder()
{
OleDbConnection conn = new OleDbConnection();
conn.ConnectionString = ConfigurationManager.ConnectionStrings["onlineStoreConnString"].ConnectionString;
conn.Open();
OleDbCommand comm = conn.CreateCommand();
comm.CommandText = "INSERT INTO Order (UserID, ProductID, OrderDate, ProductQty, IsCart) VALUES(?, ?, ?, ?, ?)";
OleDbParameter param;
param = comm.CreateParameter();
param.DbType = DbType.String;
param.Direction = ParameterDirection.Input;
param.Value = Int32.Parse(Session["LoggedInId"].ToString());
comm.Parameters.Add(param);
param = comm.CreateParameter();
param.DbType = DbType.String;
param.Direction = ParameterDirection.Input;
param.Value = Int32.Parse(Request.QueryString["id"].ToString());
comm.Parameters.Add(param);
param = comm.CreateParameter();
param.DbType = DbType.String;
param.Direction = ParameterDirection.Input;
param.Value = DateTime.Now.ToString();
comm.Parameters.Add(param);
param = comm.CreateParameter();
param.DbType = DbType.String;
param.Direction = ParameterDirection.Input;
param.Value = Int32.Parse(txtQty.Text);
comm.Parameters.Add(param);
param = comm.CreateParameter();
param.DbType = DbType.String;
param.Direction = ParameterDirection.Input;
param.Value = true;
comm.Parameters.Add(param);
int totalCount = comm.ExecuteNonQuery();
conn.Close();
}
数据库是MS Access,属性的数据类型是 用户 ID:号码,
产品ID:编号,
OrderDate:长文本,
产品数量:数量
IsCart:是/否
我已经在这个错误中坚持了几个小时,任何人可以帮助我找到它吗?谢谢。
【问题讨论】:
-
Order是保留关键字。用双引号或反引号括起来(如果使用 mysql) -
DBMS 是 MS Access
-
谢谢!这就是问题所在。