当前位置:首页 > PHP教程 > PHP总结归纳

轻松教你SQL转ACCESS

sql数据库转access数据库步骤:

1. 建立access数据库:在access中建立access数据库和表,access字段类型与sql中字段类型的对应关系。

2. 在access中建表是应注意它的保留关键字:比如password 如果表中的某个字段使用了关键字,那么会导致一系列的语句错误。比如update t_users setusername=@username,password=@password where userid=@userid"此时就会提示"system.data.oledb.oledbexception: update 语句的语法错误".更多保留关键字可以参照互联网。

3. 从sql导入数据到access数据库。

注意:sql2008只能导出到access2007一下的版本的数据库。

asp.net应做的修改

1. 修改连接字符串:

将改为

提示:其中"jet.oledb.4.0"对应的是access2003版本,"|datadirectory|"表示数据库在app_date目录下。

2. 导入 using system.data.oledb;命名空间。

将以sql开头的sqlconnection , sqlcommand , sqlparameter, sqldataadapter, sqlparameter, sqldatareader,sqltype等改成oledbconnection ,oledbcommand , oledbparameter,oledbdataadapter, oledbparameter, oledbdatareader, oledbtype.

3. 修改。net文件中要操作的表中字段类型的

new sqlparameter("@categoryname",sqldbtype.nvarchar,100),

newsqlparameter("@parentid",sqldbtype.nvarchar,50),

newsqlparameter("@path",sqldbtype.nvarchar,200),

newsqlparameter("@depth",sqldbtype.int,4),

newsqlparameter("@childids",sqldbtype.nvarchar,50),

newsqlparameter("@isactive",sqldbtype.bit,1),

newsqlparameter("@articlenum",sqldbtype.int,4),

newsqlparameter("@readme",sqldbtype.nvarchar,200),

newsqlparameter("@categoryid",sqldbtype.int,4)};

改成:

new oledbparameter("@categoryname", oledbtype.longvarwchar,100),

new oledbparameter("@parentid", oledbtype.longvarwchar,50),

new oledbparameter("@path", oledbtype.longvarwchar,200),

new oledbparameter("@depth", oledbtype.integer,4),

newoledbparameter("@childids",oledbtype.longvarwchar,50),

new oledbparameter("@isactive", oledbtype.boolean,1),

new oledbparameter("@articlenum", oledbtype.integer,4),

new oledbparameter("@readme", oledbtype.longvarwchar,200),

new oledbparameter("@categoryid", oledbtype.integer,4)};

4. 修改查询字语句式:

4.1 将去掉true或false的单引号,,如homeshowimg='true '改成homeshowimg=true

4.2 !=0改成<>0 ,如 ispicnews !=0 -> ispicnews <>0

4.3 =''改成is null.与logimagepath !=' -> logimagepath is not nul

4.4 newsid ='" + newsiid + "'";改成newsid =" + newsiid + "";

5. 当update语句没错但内容无法更新而且vs又没提示出错的时候,可以考虑是不是oledbparameter中参数的对应顺序的问题,oledbparameter参数的顺序迎合update语句中出现的顺序保持一致。

比如: string cmdtext = "updatet_friendlylink set isshown=@isshown,linkurl=@txturl,linktext=@txttitle whereid=@id";

oledbparameter[]ps ={

newoledbparameter ("@id",id),

newoledbparameter ("@isshown",isshown),

newoledbparameter ("@txturl",txturl),

newoledbparameter ("@txttitle",txttitle),

};

这样在sqlserver中可以运行,但在access中必须改成

oledbparameter[]ps ={

newoledbparameter ("@isshown",isshown),

newoledbparameter ("@txturl",txturl),

newoledbparameter ("@txttitle",txttitle),

new oledbparameter ("@id",id),

};

6.access不支持:select @@identity


【说明】本文章由站长整理发布,文章内容不代表本站观点,如文中有侵权行为,请与本站客服联系(QQ:)!