【发布时间】:2014-07-02 13:09:57
【问题描述】:
我正在尝试将 DataGridView 中的所有数据保存到 Access 数据库中,但出现此错误:Syntax error in INSERT INTO statement.我的代码如下:
try
{
string ConnectionString = @"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=..\\MotoFix.mdb;";
OleDbCommand Com = new OleDbCommand();
for (int i = 0; i < gridViewProduct_Transac.Rows.Count - 1; i++)
{
using (OleDbConnection Con = new OleDbConnection(ConnectionString))
{
string str;
Con.Open();
str = @"INSERT INTO Transaction(tranNo, custID, pID, userID, orderNo, sDate) VALUES ('" + gridViewProduct_Transac.Rows[i].Cells["Transaction Number"].Value + "', '" + gridViewProduct_Transac.Rows[i].Cells["Customer ID"].Value + "'," + gridViewProduct_Transac.Rows[i].Cells["Referral ID"].Value + ",'" + gridViewProduct_Transac.Rows[i].Cells["Cashier ID"].Value + "','" + gridViewProduct_Transac.Rows[i].Cells["Order Number"].Value + "','" + gridViewProduct_Transac.Rows[i].Cells["Date"].Value + "');";
using (Com = new OleDbCommand(str, Con))
{
Com.ExecuteNonQuery();
Con.Close();
}
}
}
}
【问题讨论】:
-
TRANSACTION是 Access SQL 中的 reserved word。试试INSERT INTO [Transaction] ...。 -
我已经更改了它,但我遇到了这个错误没有为一个或多个必需参数提供值。
标签: database ms-access datagridview save multiple-records