【发布时间】:2014-12-09 07:35:19
【问题描述】:
我正在做一个项目,我必须在所有查询中使用 Access 数据库,它一直显示此异常
System.Data.OleDb.OleDbException was unhandled
Message = Syntax error in UPDATE statement.
Source = Microsoft Office Access Database Engine
ErrorCode= - 2147217900
在下面的查询中
public static string updateDailyBalance = "UPDATE DailyBalance SET [{0}] = {1} WHERE [CustomerID] = {2} & [PurchaseMonth] = {3}";
并在下面的源代码中
for (int i = 0; i < dsCustomerBal.Tables[0].Rows.Count; i++)
{
//{0} = Day, {1} = BalancePoints, {2} = CustomerID, {3} = yyyyMM
string strQ = Constants.updateDailyBalance;
strQ = strQ.Replace("{0}", l.ToString());
strQ = strQ.Replace("{1}", dsCustomerBal.Tables[0].Rows[i]["Bal"].ToString());
strQ = strQ.Replace("{2}", dsCustomerBal.Tables[0].Rows[i]["CustomerID"].ToString());
strQ = strQ.Replace("{3}", _LastUpdatedDate.ToString("yyyyMM"));
Database db1 = DatabaseFactory.CreateDatabase("Deltin");
DbCommand dbComm1 = db1.GetSqlStringCommand(strQ);
dbComm1.CommandTimeout = 0;
int j = db.ExecuteNonQuery(dbComm1);
}
排队
int j = db.ExecuteNonQuery(dbComm1);
【问题讨论】:
-
你调试过你的代码吗?执行之前
strQ的值是多少? -
伙计们。学习 string.format。您可以用一个 string.format 替换所有替换语句。更好的是使用 - 参数。但是这个字符串处理尖叫“我不知道存在哪些 .NET 类”。
标签: c# sql ms-access ado.net ms-access-2007