Access數(shù)據(jù)庫多條數(shù)據(jù)Insert(2)_Access數(shù)據(jù)庫教程

      編輯Tag賺U幣
      教程Tag:暫無Tag,歡迎添加,賺取U幣!

      推薦:Access 2010數(shù)據(jù)庫加密介紹
      使用數(shù)據(jù)庫密碼加密 Access 數(shù)據(jù)庫 Access 中的加密工具合并了兩個(gè)舊工具(編碼和數(shù)據(jù)庫密碼),并加以改進(jìn)。使用數(shù)據(jù)庫密碼來加密數(shù)據(jù)庫時(shí),所有其他工具都無法讀取數(shù)據(jù),并強(qiáng)制用戶必須輸入密碼才能使用數(shù)據(jù)庫。在 Access 2010 中應(yīng)用的加密所使用的算法比早期版本的 A

            這里模仿SQL Server中定義一個(gè)零時(shí)表,然后向其中插入盡可能全的數(shù)據(jù),然后在基于零時(shí)表查詢出想要的數(shù)據(jù)放入到我想要的數(shù)據(jù)中執(zhí)行!exec下結(jié)果又出問錯(cuò)了!此處拋出這樣的錯(cuò)誤:無效的 SQL語句;期待 'DELETE'、'INSERT'、'PROCEDURE'、'SELECT'、或 'UPDATE'。其實(shí)會(huì)出錯(cuò)完全可以想想的到,畢竟Access中連insert into table values (1,2),(1,3) 這樣的語句都不支持。此時(shí)嘗試三也不得不宣告失敗!嘗試了這么多,我不得不使用早就準(zhǔn)備用的方法 多條insert一起執(zhí)行。

      嘗試四

      The Demo: 先獲取我想要的數(shù)據(jù)形式 :1,2,3 此處略。看sql:

      public static int InsertRoleContact2(int UserID, string RoleCollection) { string[] arr = RoleCollection.Split(','); StringBuilder BuilSQL = new StringBuilder(""); foreach (string item in arr) { BuilSQL.Append( string.Format("insert into Sky_Admin_Role(AdminID,RoleID) values ({0},{1});",UserID,Convert.ToInt32(item))); } return Common.OleDbHelper.ExecuteNonQuery(CommandType.Text, BuilSQL.ToString(), null); }

            執(zhí)行下結(jié)果打出我的意外:在 SQL 語句結(jié)尾之后找到字符。 竟然連這種語句都不支持,沒相當(dāng)Access會(huì)對(duì)數(shù)據(jù)支持的這么少。既然這樣也不行,難道只有循環(huán)執(zhí)行每一天SQL語句嗎?我看可行!循環(huán)是必要的,只要不多次連接數(shù)據(jù)庫,也不會(huì)占用太多資源的,此時(shí)引出了我的本文的重點(diǎn),如何向Access中插入多條記錄。

      嘗試五

      The Demo:

      public static void InsertMultipleSQL(int UserID,string RoleCollection) { string[] arr = RoleCollection.Split(','); using (OleDbConnection conn = new OleDbConnection(Common.config.AccessConnStr)) { OleDbCommand cmd = conn.CreateCommand(); OleDbTransaction trans = null; try { conn.Open(); trans = conn.BeginTransaction(); cmd.Transaction = trans; foreach (string item in arr) { cmd.CommandText = string.Format( string.Format( "insert into Sky_Admin_Role(AdminID,RoleID ) values ({0},{1});", UserID, Convert.ToInt32(item))); cmd.ExecuteNonQuery(); } trans.Commit(); } catch (Exception ex) { trans.Rollback(); throw ex; } } }

           注意當(dāng)插入多條語句時(shí)我們不要忘了一旦發(fā)生異常,我們需要撤銷操作,就必須要用到事務(wù)。執(zhí)行Aceess的insert時(shí),我們需要在connection關(guān)閉前循環(huán)插入,這樣才能減少資源暫用,提升性能。這里宣告嘗試五成功!

      分享:Access數(shù)據(jù)庫安全策略之ASP式
      這種作法是比較專業(yè)但也是很安全的也是現(xiàn)在比較流行的作法,但是現(xiàn)在許多的人只是作了一半,只是將數(shù)據(jù)名改成ASP而以,這樣的話直接用FlashGet之類的下載工具一樣可以將數(shù)據(jù)庫下載,這種方式的正確作法有兩步: 第一步:在數(shù)據(jù)庫內(nèi)創(chuàng)建一個(gè)字段,名稱隨意,類型是OLE對(duì)

      共2頁上一頁12下一頁
      來源:模板無憂//所屬分類:Access數(shù)據(jù)庫教程/更新時(shí)間:2014-10-10
      相關(guān)Access數(shù)據(jù)庫教程