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
本文原創發布php中文網,轉載請注明出處,感謝您的尊重!