中文字幕免费精品_亚洲视频自拍_亚洲综合国产激情另类一区_色综合咪咪久久

Access數據庫多條數據Insert
來源:易賢網 閱讀:1299 次 日期:2014-08-21 11:58:22
溫馨提示:易賢網小編為您整理了“Access數據庫多條數據Insert”,方便廣大網友查閱!

當下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關閉前循環插入,這樣才能減少資源暫用,提升性能。這里宣告嘗試五成功!

更多信息請查看IT技術專欄

更多信息請查看數據庫
易賢網手機網站地址:Access數據庫多條數據Insert
由于各方面情況的不斷調整與變化,易賢網提供的所有考試信息和咨詢回復僅供參考,敬請考生以權威部門公布的正式信息和咨詢為準!

2026上岸·考公考編培訓報班

  • 報班類型
  • 姓名
  • 手機號
  • 驗證碼
關于我們 | 聯系我們 | 人才招聘 | 網站聲明 | 網站幫助 | 非正式的簡要咨詢 | 簡要咨詢須知 | 新媒體/短視頻平臺 | 手機站點 | 投訴建議
工業和信息化部備案號:滇ICP備2023014141號-1 云南省教育廳備案號:云教ICP備0901021 滇公網安備53010202001879號 人力資源服務許可證:(云)人服證字(2023)第0102001523號
云南網警備案專用圖標
聯系電話:0871-65099533/13759567129 獲取招聘考試信息及咨詢關注公眾號:hfpxwx
咨詢QQ:1093837350(9:00—18:00)版權所有:易賢網
云南網警報警專用圖標
中文字幕免费精品_亚洲视频自拍_亚洲综合国产激情另类一区_色综合咪咪久久
玉米视频成人免费看| 亚洲精品久久久久久久久久久久久| 一区二区三区日韩| 亚洲成色777777女色窝| 国产精品视频不卡| 欧美日韩精品在线播放| 久久久精品久久久久| 亚洲国产欧美一区二区三区久久| 亚洲精品偷拍| 欧美日韩免费精品| 亚洲小说欧美另类社区| 国产女人18毛片水18精品| 午夜视频久久久久久| 合欧美一区二区三区| 欧美精品久久一区| 亚洲视频观看| 亚洲电影在线观看| 国产精品久久久久久久久久直播 | 久久精品二区三区| 在线观看视频日韩| 久久精品官网| 亚洲精品视频啊美女在线直播| 欧美日韩不卡一区| 欧美日韩麻豆| 亚洲一区二区三区精品在线观看| 国产精品国产三级国产专播品爱网 | 在线电影欧美日韩一区二区私密| 亚洲美女精品成人在线视频| 欧美日韩在线直播| 日韩午夜激情av| 久久综合色天天久久综合图片| 国产午夜亚洲精品不卡| 欧美不卡高清| 国产精品欧美日韩| 亚洲精品自在久久| 欧美精品一区二区三区视频| 午夜精品一区二区三区四区| 亚洲欧洲日本一区二区三区| 欧美大片在线观看| 在线看片成人| 欧美一区二区播放| 欧美精品久久久久久久久老牛影院 | 欧美日韩成人在线播放| 在线免费观看一区二区三区| 欧美日韩情趣电影| 蜜桃久久av| 欧美日韩高清区| 老鸭窝毛片一区二区三区| 在线观看视频日韩| 国产精品久久久久久五月尺| 久久一日本道色综合久久| 国产日韩欧美综合| 一区二区欧美在线| 影音先锋日韩精品| 国产一区二区三区四区老人| 国产精品另类一区| 欧美系列电影免费观看| 欧美三级黄美女| 欧美视频1区| 欧美午夜一区二区福利视频| 欧美看片网站| 欧美日韩在线第一页| 欧美日韩中文字幕在线视频| 欧美日韩精品一二三区| 欧美激情网友自拍| 欧美精品自拍| 欧美性猛片xxxx免费看久爱| 国产精品伦一区| 国产人久久人人人人爽| 韩国av一区二区三区四区| 伊人伊人伊人久久| 日韩视频免费大全中文字幕| 亚洲综合欧美日韩| 久久久91精品国产一区二区三区| 老司机精品久久| 欧美日韩免费高清| 国产精品国产三级国产aⅴ无密码| 国产精品一区二区在线观看不卡| 国产午夜精品理论片a级探花| 黄色在线一区| 一区二区电影免费观看| 亚洲欧美视频| 另类成人小视频在线| 欧美日本视频在线| 国产精品综合色区在线观看| 1024欧美极品| aa国产精品| 久久久久久久久岛国免费| 欧美高清一区二区| 国产免费成人| 亚洲乱码国产乱码精品精98午夜 | 欧美成人伊人久久综合网| 欧美成年网站| 国产精品青草久久| 影音先锋成人资源站| 99视频精品在线| 午夜伦欧美伦电影理论片| 乱中年女人伦av一区二区| 欧美天堂亚洲电影院在线观看| 国产亚洲欧美一区在线观看| 最新中文字幕亚洲| 久久精品99国产精品日本| 欧美日韩视频一区二区三区| 国内精品一区二区| 亚洲综合国产| 欧美日韩在线精品| 亚洲国产日韩一区| 久久精品盗摄| 国产精品日韩欧美一区二区三区| 亚洲欧洲日产国码二区| 久久蜜臀精品av| 国产欧美日韩综合| 亚洲视频电影图片偷拍一区| 欧美二区乱c少妇| 韩国av一区二区| 午夜精品久久久久| 欧美日韩在线观看一区二区三区| 亚洲国产精品视频| 久久久久久久久久久一区 | 日韩午夜av在线| 久久精品日韩欧美| 国产精品久久91| 99精品欧美一区二区蜜桃免费| 久久精品卡一| 国产私拍一区| 午夜精品三级视频福利| 欧美日韩综合视频| 日韩视频不卡| 欧美—级a级欧美特级ar全黄| 黄色日韩网站| 久久偷看各类wc女厕嘘嘘偷窃| 国产性做久久久久久| 欧美一区2区三区4区公司二百| 国产精品爱久久久久久久| 一本色道久久综合亚洲二区三区| 美女精品自拍一二三四| 国产视频在线观看一区二区三区| 午夜视频精品| 国产亚洲欧美一区在线观看| 性色一区二区| 国精品一区二区| 欧美一区视频在线| 国产亚洲成人一区| 久久青草欧美一区二区三区| **网站欧美大片在线观看| 美女精品视频一区| 亚洲精品中文字幕有码专区| 欧美激情在线观看| 在线视频欧美一区| 国产毛片久久| 久久天堂成人| 亚洲精品在线视频观看| 欧美视频一二三区| 香蕉久久夜色| 在线观看欧美亚洲| 欧美久久影院| 亚洲一级片在线看| 国产一区二区精品久久| 久久伊人精品天天| 日韩视频免费观看高清在线视频 | 午夜一区二区三区在线观看| 国产麻豆精品视频| 久久综合久色欧美综合狠狠| 亚洲精品国产精品乱码不99| 欧美日韩一区在线观看| 久久gogo国模啪啪人体图| 亚洲国产欧美日韩| 国产精品久久影院| 麻豆国产va免费精品高清在线| 日韩视频久久| 国产日韩一区二区| 欧美激情一区二区三区在线视频 | 亚洲大胆人体视频| 欧美三级免费| 久久午夜国产精品| 亚洲一区二区精品在线观看| 国内精品久久久久久久影视蜜臀| 欧美理论视频| 久久精品天堂| 亚洲女爱视频在线| 亚洲精品国精品久久99热| 欧美亚洲成人免费| 免费欧美在线视频| 亚洲永久免费视频| 亚洲精品日韩在线观看| 国产亚洲欧美日韩日本| 欧美日韩亚洲激情| 麻豆乱码国产一区二区三区| 性欧美xxxx大乳国产app| av成人天堂| 亚洲高清不卡在线| 国产中文一区| 国产欧美日韩视频在线观看| 欧美特黄一区| 欧美成人综合网站| 久久影视精品| 久久精品人人爽| 久久精品91久久久久久再现| 亚洲无线一线二线三线区别av| 91久久午夜|