Maison base de données tutoriel mysql asp.net Insert into 语句的语法错误

asp.net Insert into 语句的语法错误

Jun 07, 2016 pm 04:21 PM
asp.net insert 语句 语法 错误

asp教程.net insert into 语句的语法错误的解决方法 问题描述: 我用oledb的方式向access数据里写数据,示例源码如下: string sql=select * from multitable; oledbdataadapter olesub=new oledbdataadapter(sql,olecn); oledbcommandbuilder cb1=new oledb

   asp教程.net insert into 语句的语法错误的解决方法

  问题描述:

  我用oledb的方式向access数据里写数据,示例源码如下:

  string 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$的方式],所以提供这样一种方式是相当灵活的。接下来我再次修改代码,对这两个属性赋值:

  oledbdataadapter olesub=new oledbdataadapter(sql,olecn);

  oledbcommandbuilder cb1=new oledbcommandbuilder(olesub);

  cb1.quoteprefix="[";

  cb1.quotesuffix="]";

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Article chaud

Repo: Comment relancer ses coéquipiers
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Combien de temps faut-il pour battre Split Fiction?
3 Il y a quelques semaines By DDD
R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
1 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Adventure: Comment obtenir des graines géantes
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌

Article chaud

Repo: Comment relancer ses coéquipiers
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Combien de temps faut-il pour battre Split Fiction?
3 Il y a quelques semaines By DDD
R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
1 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Adventure: Comment obtenir des graines géantes
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌

Tags d'article chaud

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Impossible de terminer l'opération (Erreur 0x0000771) Erreur d'imprimante Impossible de terminer l'opération (Erreur 0x0000771) Erreur d'imprimante Mar 16, 2024 pm 03:50 PM

Impossible de terminer l'opération (Erreur 0x0000771) Erreur d'imprimante

Révéler les causes du code d'état HTTP 460 Révéler les causes du code d'état HTTP 460 Feb 19, 2024 pm 08:30 PM

Révéler les causes du code d'état HTTP 460

Solution à l'erreur d'invite de mise à jour Windows 0x8024401c Solution à l'erreur d'invite de mise à jour Windows 0x8024401c Jun 08, 2024 pm 12:18 PM

Solution à l'erreur d'invite de mise à jour Windows 0x8024401c

Évitez les erreurs courantes dans la configuration de l'environnement Maven : résolvez les problèmes de configuration Évitez les erreurs courantes dans la configuration de l'environnement Maven : résolvez les problèmes de configuration Feb 19, 2024 pm 04:56 PM

Évitez les erreurs courantes dans la configuration de l'environnement Maven : résolvez les problèmes de configuration

Comment résoudre l'erreur 403 rencontrée par la requête jQuery AJAX Comment résoudre l'erreur 403 rencontrée par la requête jQuery AJAX Feb 20, 2024 am 10:07 AM

Comment résoudre l'erreur 403 rencontrée par la requête jQuery AJAX

Fatal : Impossible d'avancer rapidement, GIT pull avorté avec erreur Fatal : Impossible d'avancer rapidement, GIT pull avorté avec erreur Feb 20, 2024 am 09:13 AM

Fatal : Impossible d'avancer rapidement, GIT pull avorté avec erreur

Linux Oups : explication détaillée de la signification de cette erreur Linux Oups : explication détaillée de la signification de cette erreur Mar 21, 2024 am 09:06 AM

Linux Oups : explication détaillée de la signification de cette erreur

Pourquoi l'application Xiangxiangfuzhai affiche-t-elle une erreur ? Pourquoi l'application Xiangxiangfuzhai affiche-t-elle une erreur ? Mar 19, 2024 am 08:04 AM

Pourquoi l'application Xiangxiangfuzhai affiche-t-elle une erreur ?

See all articles