国产午夜成人免费看片无遮挡_日本免费xxxx色视频_免费人成网上在线观看_黄网址在线永久免费观看

當前位置:雨林木風下載站 > 辦公軟件教程 > 詳細頁面

Access數據庫多條數據Insert

Access數據庫多條數據Insert

更新時間:2022-05-07 文章作者:未知 信息來源:網絡 閱讀次數:

Microsoft Office Access是由微軟發布的關系數據庫管理系統。它結合了 MicrosoftJet Database Engine 和 圖形用戶界面兩項特點,是 Microsoft Office 的系統程序之一。Microsoft Office Access是微軟把數據庫引擎的圖形用戶界面和軟件開發工具結合在一起的一個數據庫管理系統。它是微軟OFFICE的一個成員, 在包括專業版和更高版本的office版本里面被單獨出售。2018年9月25日,最新的微軟Office Access 2019在微軟Office 2019里發布。

當下Access數據庫可能要被遺忘了!比較這個輕量級數據庫被精簡了許多功能,個人感覺用起來還是挺麻煩的!當前Access在企業項目中就是一塊雞肋。數據量小使用SQL Server是浪費,既然選擇了Access就別抱怨了!如果用好了還是一塊寶!廢話不多說了,今天就來探討下如何向Access中插入多條數據把!

      由于在此之前我沒有用過Access數據庫的,當需要想數據庫中插入多條數據時,我們不妨先按照sql server的做法:“insert into tablename(column1,column2) values (a,b),(c,d),(e,f)”。于是按照這個思路,我的第一個方案出來了。

嘗試一:

The Demo:

StringBuilder BuiList = new StringBuilder(string.Format("({0},0)", UserID));
            foreach (RepeaterItem item in Rpt_AdminRole.Items)
            {
                if (item.ItemType == ListItemType.Item || item.ItemType == ListItemType.AlternatingItem)
                {
                    HtmlInputCheckBox cbRole = item.FindControl("cb_Role") as HtmlInputCheckBox;
                    if (cbRole.Checked)
                    {
                        BuiList.Append(",(");
                        BuiList.Append(UserID);
                        BuiList.Append(",");
                        BuiList.Append(cbRole.Value);
                        BuiList.Append(")");
                    }
                }
            }

The Dal:

        /// <summary>
        /// 添加Role關系
        /// </summary>
        /// <param name="roleContact">角色關系 eg: "(1,1),(1,2)"</param>
        /// <returns></returns>
        public static int InsertRoleContact(string roleContact)
        {
            string sql = "insert into Sky_Admin_Role(AdminID,RoleID) values "+roleContact;
            return Common.OleDbHelper.ExecuteNonQuery(CommandType.Text, sql, null);
        }

exec下就會出現這樣的錯誤:SQL 語句的結束位置缺少分號 (;)。

      Access對sql的支持果然是大大精簡,到此嘗試一失敗!, 很快在我有另外idea。sql server 多表查詢對select table 的支持!我可以直接傳一個DataTable到sql語句中,說干就干! 

嘗試二

The Demo : 獲取DataTable

        public DataTable GetInsertSQL(Repeater rep,string controlID)
        {
            DataTable data = new DataTable();
            data.Columns.Add("AdminID");
            data.Columns.Add("RoleID");
            foreach (RepeaterItem item in rep.Items)
            {
                if (item.ItemType == ListItemType.Item || item.ItemType == ListItemType.AlternatingItem)
                {
                    HtmlInputCheckBox cb = item.FindControl(controlID) as HtmlInputCheckBox;
                    if (cb.Checked)
                    {
                        DataRow row = data.NewRow();
                        row.ItemArray = new object[] { UserID, cb.Value};
                        data.Rows.Add(row);
                    }
                }
            }
            return data;
        }

The Dal:

public static int InsertRoleContact(DataTable dt)
        {
            string sql = "insert into Sky_Admin_Role(AdminID,RoleID) select * from @Data";
            OleDbParameter[] param = new OleDbParameter[] { 
            new OleDbParameter("@Data",?){Value =dt}
            };
            return Common.OleDbHelper.ExecuteNonQuery(CommandType.Text, sql, param);
        }

     當代碼到這里我就知道此方法行不通,因為OledbType中沒有對應的table類型,如果是SQL server由于支持xml可以設置為 SqlDbType.Xml類型來傳遞DataTable數據,由于sql本事對xml的支持 ,可以用sql基于xml的查詢,本文主要討論Access,此處暫不討論了!嘗試二宣布失敗!。接下來我又想到了零時表,Access是不是也支持零時表的查詢呢?

嘗試三

The Demo: 取出我想要的數據格式 (1,2,3)

        public string GetInserCollection(Repeater rep, string controlID)
        {
            StringBuilder buiCollecton = new StringBuilder("");
            buiCollecton.Append("(0");
            foreach (RepeaterItem item in rep.Items)
            {
                if (item.ItemType == ListItemType.Item || item.ItemType == ListItemType.AlternatingItem)
                {
                    HtmlInputCheckBox cb = item.FindControl(controlID) as HtmlInputCheckBox;
                    if (cb.Checked)
                    {
                        buiCollecton.Append(string.Format(",{0}", cb.Value));
                    }
                }
            }
            buiCollecton.Append(")");
            return buiCollecton.ToString();
        }


The Dal :

public static int InsertRoleContact(int UserID,string RoleCollection)
        {
            StringBuilder BuiSQL = new StringBuilder("");
            BuiSQL.Append("declare @SkyContact table(userID int,roleID int);");
            BuiSQL.Append("insert into @SkyContact values select " + UserID + ",R_ID from Sky_Role;");
            BuiSQL.Append(string.Format("insert into Sky_Admin_Role values (select * from @SkyContact where roleID in {0})",RoleCollection));
            return Common.OleDbHelper.ExecuteNonQuery(CommandType.Text, BuiSQL.ToString(), null);
        }

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

嘗試四

The Demo: 先獲取我想要的數據形式 :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);
        }

      執行下結果打出我的意外:在 SQL 語句結尾之后找到字符。 竟然連這種語句都不支持,沒相當Access會對數據支持的這么少。既然這樣也不行,難道只有循環執行每一天SQL語句嗎?我看可行!循環是必要的,只要不多次連接數據庫,也不會占用太多資源的,此時引出了我的本文的重點,如何向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;
                }
            }
        }

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


Microsoft Access在很多地方得到廣泛使用,例如小型企業,大公司的部門。

溫馨提示:喜歡本站的話,請收藏一下本站!

本類教程下載

系統下載排行

国产午夜成人免费看片无遮挡_日本免费xxxx色视频_免费人成网上在线观看_黄网址在线永久免费观看

  • <label id="pxtpz"><meter id="pxtpz"></meter></label>
      1. <span id="pxtpz"><optgroup id="pxtpz"></optgroup></span>

        美女国产一区二区三区| 在线播放中文字幕一区| 9久草视频在线视频精品| 日韩美女一区二区三区四区| 日韩精品午夜视频| 欧美久久一二区| 久久精品国产99| 久久久久久亚洲综合| 国产91在线看| 亚洲一二三四区| 日韩欧美在线不卡| av亚洲精华国产精华精| 一区二区三区电影在线播| 69久久夜色精品国产69蝌蚪网| 免费不卡在线视频| 最新国产の精品合集bt伙计| 欧美色图12p| 激情图区综合网| 亚洲欧洲精品一区二区三区 | 成人免费黄色在线| 中文字幕色av一区二区三区| 色婷婷综合久色| 免费久久精品视频| 亚洲欧美色图小说| 精品88久久久久88久久久| 成人av网址在线| 麻豆91精品91久久久的内涵| 欧美经典三级视频一区二区三区| 日本乱码高清不卡字幕| 国产精品亚洲专一区二区三区| 亚洲精品国久久99热| 国产性色一区二区| 6080午夜不卡| 91视频.com| 国内精品嫩模私拍在线| 亚洲成在线观看| 亚洲美女视频在线| 国产精品美女久久久久久久久| 日韩一二三四区| 精品视频在线视频| 一本一道久久a久久精品 | 奇米四色…亚洲| 亚洲一区二三区| 亚洲欧美怡红院| 久久久不卡网国产精品二区| 欧美人与性动xxxx| 在线免费一区三区| 色婷婷综合激情| 在线精品视频免费播放| 91免费在线视频观看| 国产成人免费在线视频| 精品在线观看视频| 精品制服美女丁香| 国产黄色91视频| 国产ts人妖一区二区| 国产精品一区二区在线播放| 国产伦精品一区二区三区视频青涩| 强制捆绑调教一区二区| 九九热在线视频观看这里只有精品| 在线不卡免费欧美| 欧美videos中文字幕| 精品美女一区二区| 欧美视频在线一区二区三区| 一本一道久久a久久精品 | 国产精品夫妻自拍| 中文字幕欧美一| 亚洲精品视频在线看| 一区二区三区精品视频| 性久久久久久久久久久久| 午夜a成v人精品| 免费xxxx性欧美18vr| 国产福利一区在线| 不卡av在线免费观看| 欧美自拍偷拍一区| 日韩欧美一区在线观看| 久久精品水蜜桃av综合天堂| 国产精品久久久久国产精品日日 | 亚洲成在人线在线播放| 免费欧美日韩国产三级电影| 激情av综合网| bt7086福利一区国产| 欧美丝袜丝交足nylons| 日韩欧美中文字幕公布| 中文一区二区在线观看| 亚洲图片一区二区| 精品一区二区三区在线观看国产| 国产麻豆成人传媒免费观看| 日本高清不卡视频| 精品盗摄一区二区三区| 成人欧美一区二区三区1314| 亚洲欧洲中文日韩久久av乱码| 夜夜嗨av一区二区三区| 日韩不卡一二三区| 97精品久久久午夜一区二区三区| 欧美色视频在线观看| 国产网站一区二区| 日韩va亚洲va欧美va久久| 91麻豆精东视频| 久久美女艺术照精彩视频福利播放| 尤物av一区二区| 国产精品香蕉一区二区三区| 欧美三级视频在线播放| 日本一区二区免费在线| 丝袜美腿成人在线| 色婷婷综合五月| 国产精品午夜在线| 美女尤物国产一区| 欧美精品日韩综合在线| 中文字幕在线不卡一区| 久久成人免费网| 欧美日韩高清一区二区三区| 久久久精品影视| 看电视剧不卡顿的网站| 91福利视频久久久久| 国产精品国产自产拍在线| 久久精品国产亚洲高清剧情介绍| 欧美天堂一区二区三区| 一区二区三区在线影院| av在线播放一区二区三区| 久久亚洲欧美国产精品乐播| 日韩av午夜在线观看| 欧美日本乱大交xxxxx| 亚洲福利视频一区二区| 91麻豆蜜桃一区二区三区| 中文字幕制服丝袜一区二区三区 | 91在线观看一区二区| 久久九九久久九九| 国产麻豆精品在线观看| 2欧美一区二区三区在线观看视频| 奇米777欧美一区二区| 91麻豆精品国产综合久久久久久| 亚洲已满18点击进入久久| 色综合久久综合网欧美综合网 | 久久先锋资源网| 精东粉嫩av免费一区二区三区| 日韩欧美国产综合在线一区二区三区| 亚洲高清视频中文字幕| 欧洲亚洲精品在线| 日韩在线一区二区三区| 欧美老女人第四色| 日韩国产欧美一区二区三区| 欧美日韩一区成人| 美女视频网站久久| 久久女同性恋中文字幕| 国产a视频精品免费观看| 国产精品视频免费看| eeuss国产一区二区三区| 亚洲色图另类专区| 欧美日韩一本到| 久久精品99国产精品日本| 久久网站热最新地址| 成人综合婷婷国产精品久久免费| 中文在线免费一区三区高中清不卡| 99视频在线精品| 亚洲成人精品一区| 26uuu精品一区二区三区四区在线| 国产精品影音先锋| 亚洲美女偷拍久久| 日韩一级在线观看| 成人av午夜电影| 日韩福利视频导航| 国产精品麻豆视频| 欧美精品aⅴ在线视频| 精品亚洲免费视频| 亚洲精品午夜久久久| 日韩一卡二卡三卡国产欧美| www.久久久久久久久| 五月天一区二区三区| 久久久不卡影院| 6080亚洲精品一区二区| 99精品国产热久久91蜜凸| 日本人妖一区二区| 亚洲欧美日韩国产综合在线| 欧美不卡一区二区| 欧美性极品少妇| 91在线播放网址| 国产精品1024久久| 亚洲图片欧美一区| 欧美激情在线一区二区| 欧美一二三区精品| 欧美婷婷六月丁香综合色| 国产一区二区三区免费播放| 亚洲风情在线资源站| 国产精品乱人伦中文| 精品国产a毛片| 91精品国产综合久久精品麻豆 | 欧美精品一区视频| 777久久久精品| 欧美午夜精品久久久| www.欧美精品一二区| 国产ts人妖一区二区| 久久99久久精品| 日韩中文字幕一区二区三区| 亚洲欧美激情一区二区| 国产精品视频免费看| 日本一区二区三区电影| 亚洲精品一区二区三区在线观看| 欧美日韩一区二区欧美激情| 在线日韩一区二区| 在线免费观看成人短视频|