C#/ OLE DB:INSERT INTO语句中的语法错误

时间:2014-04-24 16:26:11

标签: c# database ms-access oledb ms-access-2010

这是我的关系数据库(.accdb):

(抱歉,声誉不够,无法发布图片)

https://docs.google.com/file/d/0B11KxyqILxOoVFR5OFBBbEplS0k

错误代码:

cmd3.CommandText = "INSERT INTO Transaction ([InvoiceNum], [ItemID], [Quantity]) " +
                     "Values (?, ?, ?)";

cmd3.Parameters.AddWithValue("@InvoiceNum", invoiceNumber);
cmd3.Parameters.AddWithValue("@ItemID", itemID);
cmd3.Parameters.AddWithValue("@Quantity", item.GetQuantity());

cmd3.ExecuteNonQuery(); //ERROR: Syntax error in INSERT INTO statement

如果我改为INSERT进入Transaction2,它就可以了。

工作代码:

 cmd3.CommandText = "INSERT INTO Transaction2 ([InvoiceNum], [ItemID], [Quantity]) " +
                     "Values (?, ?, ?)";

cmd3.Parameters.AddWithValue("@InvoiceNum", invoiceNumber);
cmd3.Parameters.AddWithValue("@ItemID", itemID);
cmd3.Parameters.AddWithValue("@Quantity", item.GetQuantity());

cmd3.ExecuteNonQuery(); 

我认为问题与“交易”与“发票”和“项目”有关系有关。

请帮助!

1 个答案:

答案 0 :(得分:0)

单词TRANSACTION是SQL中的保留字。为您的表使用不同的名称。

相关问题