Access數(shù)據(jù)庫多條數(shù)據(jù)Insert(2)_Access數(shù)據(jù)庫教程
推薦: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ì)
- Access 2010數(shù)據(jù)庫加密介紹
- Access數(shù)據(jù)庫安全策略之ASP式
- 第N次被ACCESS的關(guān)鍵字涮
- Access中用Jet SQL語句刪除表關(guān)系
- Access報(bào)表打印如何自動(dòng)分頁
- Access完成累計(jì)余額的計(jì)算
- 搭建Access為主的Mdb數(shù)據(jù)庫
- 一句sql更新兩個(gè)表并可更新對(duì)應(yīng)的字段值具體實(shí)現(xiàn)
- MySQL查詢優(yōu)化:連接查詢排序limit(join、order by、limit語句)介紹
- 內(nèi)網(wǎng)ssh/mysql登錄緩慢的解決方法
- 使用準(zhǔn)則進(jìn)行條件查詢--1.4.從窗體中選擇查詢的條件
- 中文Access2000速成教程--1.1 使用“向?qū)А痹O(shè)計(jì)數(shù)據(jù)庫
Access數(shù)據(jù)庫教程Rss訂閱編程教程搜索
Access數(shù)據(jù)庫教程推薦
- 如何設(shè)置Access項(xiàng)目中檢索的記錄數(shù)
- 使用準(zhǔn)則進(jìn)行條件查詢
- ACCESS中關(guān)于SQL語句的轉(zhuǎn)義字符
- 如何遠(yuǎn)程調(diào)用ACCESS數(shù)據(jù)庫
- Access數(shù)據(jù)庫安全策略之ASP式
- 空手建立Access數(shù)據(jù)庫
- access升級(jí)到SQLServer如何調(diào)整字段類型及函數(shù):JET SQL 和T-SQL
- 談?dòng)肁ccess作網(wǎng)站數(shù)據(jù)庫的弊端
- 以前流行的4種Access數(shù)據(jù)庫安全方式
- 如何巧用SQL鏈接服務(wù)器訪問遠(yuǎn)程Access數(shù)據(jù)庫
- 相關(guān)鏈接:
- 教程說明:
Access數(shù)據(jù)庫教程-Access數(shù)據(jù)庫多條數(shù)據(jù)Insert(2)。