首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >我的update查询有问题,我不知道它是什么

我的update查询有问题,我不知道它是什么
EN

Stack Overflow用户
提问于 2015-01-25 04:25:59
回答 1查看 104关注 0票数 0

我一遍又一遍地检查这个查询,但我不知道问题出在哪里。

代码语言:javascript
复制
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);
EN

回答 1

Stack Overflow用户

发布于 2015-01-25 04:33:10

我猜想您正在使用MS-Access作为OleDb背后的数据库。如果是这种情况,则LEVEL关键字是保留关键字,您需要将其放在方括号中

代码语言:javascript
复制
... [Level] = @Level WHERE ID = @ID";

如果您使用不同的方法来准备参数集合,则可以更好地编写代码。例如

代码语言:javascript
复制
command.Parameters.Add(new OleDbParameter("@Prereqs", OleDbType.Integer).Value = Prereqs; 

指定参数的OleDbType有助于引擎在值为零时消除值和类型之间的歧义。

Look at this article on MSDN解释了为什么应该避免使用这种形式的OleDbParameterCollection的Add方法(本文适用于SqlParameterCollection,但同样适用于OleDb)

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28129891

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档