问题描述:
我用oledb的方式向access数据里写数据,示例源码如下:
复制代码 代码如下:
sql="select * from multitable";
oledbdataadapter olesub=new oledbdataadapter(sql,olecn);
oledbcommandbuilder cb1=new oledbcommandbuilder(olesub);
dataset ds=new dataset();
olesub.fill(ds."multitable");
datatable dt=ds.tables["multitable"];
datarow dr=dt.newrow();
dr["prserv"]="ws"+index.tostring().padleft(6,''''0'''');
dr["number"]="00063";
dt.rows.add(dr);
olesub.update(ds,"mulittable");
这段代码编译的时候是没有问题的,但是在运行的时候,会报出一个运行时错误:”insert into 语句的语法错误“。用oledbadapter的时候,我并没有指定insert语句,而是用oledbcommandbuilder 来自动产生insert 语句的。仔细想了一下,为什么会产生这个错误呢?我的结论是,可能这张表里的字段名使用了access系统的保留字。于是我在access里创建了一个查询,自己写了一个insert sql,证实我的结论是正确的,number是系统的一个保留字,那怎么修改呢?
一般来说,最简单的方法就是改掉这个字段名,换成非系统保留字的名字,但是库的结构是客户提供的,不允许修改,只有想别的办法。考虑以前的经验,操作access,sql server的时候,如果表的字段中包含了系统的保留字的话,我们在字段外加上方括号就可以了,比如 insert into tblmultitable(prserv,[number]) values(.......)就可以了。可是从上面的代码中我们看到并没有什么地方我们可以指定insert 语句。我想oledbcommandbuilder应该是根据adapter使用的select语句自动生成insert 语句的,所以只要给select 语句中的字段加上方括号就可以了,所以我作了如下的修改:
string sql="select prserv,[number],priorref,grantor,grantee from multitable";
修改完毕以后,测试以后,仍然产生以前的"insert into 语句的语法错误";问题会出在哪里呢?我想应该还是在oledbcommanbuilder上,一般来说,只需要这样用oledbcommanbuilder类就可了:
oledbdataadapter olesub=new oledbdataadapter(sql,olecn);
oledbcommandbuilder cb1=new oledbcommandbuilder(olesub);
打开msdn,看看oledbcommanbuilder的类成员。发现两个很关键的属性:quoteprefix,quotesuffix;仔细想想,oledb可以访问的数据类型非常多啊,所以关键字段的前缀,后缀的处理方法肯定不尽相同,比如访问excel的时候表明应该写成[sheet1$的方式],所以提供这样一种方式是相当灵活的。接下来我再次修改代码,对这两个属性赋值:
复制代码 代码如下:
ataadapter olesub=new oledbdataadapter(sql,olecn);
oledbcommandbuilder cb1=new oledbcommandbuilder(olesub);
cb1.quoteprefix="[";
cb1.quotesuffix="]";
相关推荐:
SEO优化知识全解析:提升网站排名的秘密武器,ai出错合集
SEO地位:如何提升你的网站排名与曝光度,抢占市场先机,微营销网络推广
ChatGPT:引领人工智能对话新时代的智能助手,Ai shiang
优化服务网-提升客户体验,打造全方位智慧服务平台,东莞网站建设员招聘信息
AI网页生成:轻松构建智能网站,提升品牌竞争力,杭州专业ai智能教育
seo网站编辑是做什么,seo网站编辑可在家兼职 ,ai慢直播
未来工作方式!AI在线工具让效率倍增,工作变轻松
seo资源指的是什么,seo资料 ,绿眼AI
SEO汇报:如何通过数据分析提升网站排名,助力企业业绩增长,免费推广网站大全百度经验
目前AI软件有哪些?智能新时代的必备工具
SEO在线服务-让您的网站快速跃升至搜索引擎前列,江西小红书营销推广案例
“扩写AI”-引领写作革命,开启智能创作新时代,dede seo 标题如何填写
seo要寻找什么资源,怎么找seo ,ai插画描边
怎么降低文章的AI生成率:打造更真实、更有价值的内容
ChatGPT破解:人工智能未来的无限可能,污污AI解说
SEO做法-提升网站流量与排名的关键秘诀,屏东网站推广招聘
AI文章比对技术:引领写作与内容审核的新革命,ai智能写作小说免费
SEO自从上线后的演变与未来发展趋势,拼多多增加关键词排名
seo网站关键字排名优化,网站seo关键词 ,运动ai
AI缩写文档:革新文档管理与自动化的未来,ai聊天中文
ChatGPT免费版每天提问有次数限制吗?揭秘如何高效使用AI助手!,机甲ai手绘
好用的AI写作软件免费推荐:创作新境界!
SEO代做:让你的企业轻松登顶搜索引擎,快速提升曝光率,seo 提高注册量
乘风SEO:突破困境,领航网络营销新时代,武汉靠谱的关键词排名
SEO快速提升:让你的网站排名瞬间飙升的秘诀,网站建设的发展目标
seo需要保持什么心态,seo的要求 ,ai83562
SEM做得好可以取代SEO吗?浅析两者的异同与未来趋势,王道ai
AI写作的崛起-“只能AI写作”背后的巨大潜力,舞狮摄影ai
SEO表述:如何通过精准优化让你的内容脱颖而出,江阴网站建设怎么样啊
如何查文章AI率?全面解析AI文章检测工具及技巧
ChatGPT您的应用遇到问题,无法正常启动?如何解决并重新体验智能助手的魅力!,男头ai关键词
AI免费工具:提升效率与创意的秘密武器
ChatGPT4账号共享-让AI助力你的学习与工作,轻松提升效率,ai巨无霸
SEO优:让网站流量和排名实现飞跃的秘诀,大理哪有企业网站建设
SEO是什么意思?揭秘SEO的真正含义与重要性,公司推广网站询问d火18星来
seo网站排名优化哪家好,seo网站优化平台 ,ai斗蟋
为什么行业都要做seo,为什么要做seo ,ai明信片
用AI写科普文章:科技改变写作的未来
GPT版本全解:从基础到高级,如何选择最适合你的方案?,韩国ai人工智能
二创AI:打破创意壁垒,引领未来内容创作新潮流,背影教案网站建设游戏
SEO前的准备工作:如何让网站为搜索引擎优化做好充分准备,SEO_网站排名优化_网络推广
SEO快速排名实例:如何通过实战技巧提升网站排名,快速突破流量瓶颈,安徽ai跑步机企业
SEO开发:数字营销的核心驱动力,园区网站建设
SEO可以改变你的商业未来:如何通过优化提升网站流量和转化率,五粮液营销推广
AI自动读文:让阅读更轻松、更高效的智能革命,寄ai空
SEO技巧提升网站流量和排名,助力企业快速崛起,ai080206.
AI免费生成文字,打造创作新时代
云推SEO:让您的网站在激烈竞争中脱颖而出,网站优化公司欢迎来电
AI人物生成:重新定义虚拟形象创作的未来
seo适合什么行业,seo适合的行业 ,在ai如何矢量化