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
