我一遍又一遍地检查这个查询,但我不知道问题出在哪里。
using (OleDbConnection connection = getConnection())
{
string update =
"UPDATE Course SET SchoolID = @SchoolID, SchoolID2 = @SchoolID2, StatusID = @StatusID," +
"Bannercode = @Bannercode, CourseName = @CourseName, Description = @Description, Credits = @Credits," +
"Prereqs = @Prereqs, URL = @URL, Keywords = @Keywords, Email = @Email, Approved = @Approved, ApprovedBY = @ApprovedBY," +
"ApprovedWhen = @ApprovedWhen, History = @History, Level = @Level WHERE ID = @ID";
OleDbCommand command = new OleDbCommand(update,connection);
OleDbParameter pram1 = new OleDbParameter("@SchoolID", SchoolID);
command.Parameters.Add(pram1);
OleDbParameter pram2 = new OleDbParameter("@SchoolID2", SchoolID2);
command.Parameters.Add(pram2);
OleDbParameter pram3 = new OleDbParameter("@StatusID", StatusID);
command.Parameters.Add(pram3);
OleDbParameter pram4 = new OleDbParameter("@Bannercode", Bannercode);
command.Parameters.Add(pram4);
OleDbParameter pram5 = new OleDbParameter("@CourseName", CourseName);
command.Parameters.Add(pram5);
OleDbParameter pram6 = new OleDbParameter("@Description", Description);
command.Parameters.Add(pram6);
OleDbParameter pram7 = new OleDbParameter("@Credits", Credits);
command.Parameters.Add(pram7);
OleDbParameter pram8= new OleDbParameter("@Prereqs", Prereqs);
command.Parameters.Add(pram8);
OleDbParameter pram9 = new OleDbParameter("@URL", URL);
command.Parameters.Add(pram9);
OleDbParameter pram10 = new OleDbParameter("@Keywords", Keywords);
command.Parameters.Add(pram10);
OleDbParameter pram11 = new OleDbParameter("@Email", Email);
command.Parameters.Add(pram11);
OleDbParameter pram12 = new OleDbParameter("@Approved", Approved);
command.Parameters.Add(pram12);
OleDbParameter pram14 = new OleDbParameter("@ApprovedBY", ApprovedBY);
command.Parameters.Add(pram14);发布于 2015-01-25 04:33:10
我猜想您正在使用MS-Access作为OleDb背后的数据库。如果是这种情况,则LEVEL关键字是保留关键字,您需要将其放在方括号中
... [Level] = @Level WHERE ID = @ID";如果您使用不同的方法来准备参数集合,则可以更好地编写代码。例如
command.Parameters.Add(new OleDbParameter("@Prereqs", OleDbType.Integer).Value = Prereqs; 指定参数的OleDbType有助于引擎在值为零时消除值和类型之间的歧义。
Look at this article on MSDN解释了为什么应该避免使用这种形式的OleDbParameterCollection的Add方法(本文适用于SqlParameterCollection,但同样适用于OleDb)
https://stackoverflow.com/questions/28129891
复制相似问题