轻松教你SQL转ACCESS
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
上一篇: wring
下一篇: 过滤xml中的不合法字符