欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  数据库

轻松教你SQL转ACCESS

程序员文章站 2022-05-06 11:58:18
...

SQL数据库转access数据库步骤: 1. 建立access数据库:在access中建立access数据库和表,access字段类型与sql中字段类型的对应关系。 2. 在Access中建表是应注意它的保留关键字:比如Password 如果表中的某个字段使用了关键字,那么会导致一系列的语句错误。

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