首頁 >資料庫 >mysql教程 >轻松教你SQL转ACCESS

轻松教你SQL转ACCESS

WBOY
WBOY原創
2016-06-07 16:21:551418瀏覽

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

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn