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

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)版權所有:易賢網
云南網警報警專用圖標
中文字幕免费精品_亚洲视频自拍_亚洲综合国产激情另类一区_色综合咪咪久久
国产精品入口66mio| 亚洲欧美国产高清| 亚洲福利视频免费观看| 久久亚洲私人国产精品va| 欧美性视频网站| 亚洲激情图片小说视频| 免费成人网www| 国产一区二区av| 99精品欧美一区二区三区综合在线| 久久精品国产999大香线蕉| 午夜免费日韩视频| 国产无遮挡一区二区三区毛片日本| 欧美一进一出视频| 欧美影视一区| 亚洲第一视频网站| 欧美午夜激情视频| 久久亚洲欧美| 久久人人爽人人爽| 欧美国产三区| 一区视频在线看| 久久不射2019中文字幕| 国产精品午夜国产小视频| 亚洲每日在线| 欧美成熟视频| 亚洲欧洲一区二区在线播放| 久久精品一区二区| 国产亚洲欧美在线| 欧美在线亚洲综合一区| 国产精品美女久久久久久久| 亚洲免费在线播放| 国产欧美一二三区| 久久久91精品国产一区二区三区 | 日韩亚洲一区在线播放| 欧美精品色网| 另类成人小视频在线| 久久www成人_看片免费不卡| 一区二区三区欧美成人| 久久九九精品| 欧美精品免费播放| 亚洲欧美一区二区三区极速播放| 一区二区欧美在线观看| 国产精品久久久久久福利一牛影视| 老鸭窝亚洲一区二区三区| 亚洲欧美中日韩| 亚洲在线免费观看| 99国产精品久久久久久久久久| 日韩一级在线| 欧美不卡福利| 在线亚洲观看| 国产欧美日韩一区| 蜜桃av久久久亚洲精品| 亚洲精品老司机| 欧美性做爰毛片| 欧美视频二区| 欧美日韩精选| 国产精品久久国产精麻豆99网站| 欧美三日本三级三级在线播放| 欧美精品国产一区| 欧美日韩中文在线| 国产精品热久久久久夜色精品三区 | 国产精品播放| 国产精品第三页| 国产精品人成在线观看免费 | 激情久久五月天| 国产亚洲a∨片在线观看| 国产精品久久久久91| 国产精品一区二区在线观看网站| 国产精品一区免费观看| 国产亚洲欧洲997久久综合| 伊甸园精品99久久久久久| 亚洲国产视频一区| 一区二区欧美日韩| 亚洲影音先锋| 久久精品九九| 欧美电影在线| 国产精品久久久久久av下载红粉 | 国产一区二区三区日韩| 国产一区二区三区在线观看精品 | 亚洲综合99| 亚洲精品黄色| 极品少妇一区二区三区| 国产精品麻豆成人av电影艾秋| 欧美网站在线观看| 国产一区二区中文| 国产欧美日韩免费| 亚洲国产精品va在线观看黑人| 99成人免费视频| 久久成人av少妇免费| 欧美激情第六页| 国产伦精品免费视频| 在线视频国内自拍亚洲视频 | 欧美人在线视频| 国产精品香蕉在线观看| 曰本成人黄色| 亚洲午夜av在线| 久久久久久一区| 欧美日韩亚洲精品内裤| 国产一区二区三区免费不卡| 99精品欧美一区二区蜜桃免费| 欧美中文字幕在线| 欧美色另类天堂2015| 亚洲成色www8888| 先锋亚洲精品| 欧美日韩另类综合| 亚洲国产另类 国产精品国产免费| 亚洲在线视频| 欧美日韩国产一区| 樱桃视频在线观看一区| 亚洲欧美制服中文字幕| 欧美日韩免费观看一区三区| 1000部国产精品成人观看| 午夜精品三级视频福利| 欧美视频一区二区三区…| 在线观看国产一区二区| 欧美一级电影久久| 国产精品久久久久久av福利软件| 亚洲精品欧美日韩| 老司机久久99久久精品播放免费 | 国产午夜精品久久久久久久| 亚洲美女精品久久| 欧美 日韩 国产精品免费观看| 国产女主播一区二区| 亚洲小少妇裸体bbw| 欧美日韩国产综合新一区| 亚洲国产精品va在线观看黑人| 欧美一区亚洲二区| 国产精品久久久久久影视 | 欧美日本在线| 亚洲黄色在线观看| 乱码第一页成人| 亚洲网在线观看| 欧美人与性动交α欧美精品济南到| 亚洲国产日韩在线一区模特| 狂野欧美激情性xxxx欧美| 一区精品在线播放| 欧美超级免费视 在线| 亚洲狼人综合| 欧美日韩亚洲激情| 亚洲一区二区欧美日韩| 国产精品一区免费视频| 久久精品人人做人人综合| 狠狠久久综合婷婷不卡| 免费看黄裸体一级大秀欧美| 亚洲国产网站| 欧美日韩一卡| 亚洲欧美日韩精品| 国产视频一区二区三区在线观看| 久久成人精品一区二区三区| 国产亚洲成av人片在线观看桃| 久久久久青草大香线综合精品| 在线观看精品视频| 欧美日韩另类视频| 亚洲欧美日韩久久精品| 国产一区二区三区无遮挡| 久久精品国产99国产精品澳门| 激情成人综合| 欧美日韩成人综合天天影院| 亚洲一区二区免费| 在线看片一区| 欧美日韩亚洲一区二区| 欧美日韩理论| 国产私拍一区| 欧美亚洲综合在线| 国产精品美女在线观看| 亚洲激情女人| 国产精品草草| 一区二区冒白浆视频| 欧美三级第一页| 欧美伊人精品成人久久综合97| 国产一区二区丝袜高跟鞋图片| 久久久久久伊人| 99精品国产热久久91蜜凸| 国产精品视频xxx| 久久这里有精品视频| 中国成人亚色综合网站| 黄色在线一区| 欧美日韩亚洲一区三区| 久久国产毛片| 中文在线一区| 亚洲欧洲一区二区三区| 国产亚洲人成a一在线v站 | 亚洲综合日韩| 亚洲国产精品va在线看黑人动漫| 欧美日韩网址| 女生裸体视频一区二区三区| 亚洲欧美日韩一区二区| 亚洲高清资源综合久久精品| 国产麻豆综合| 欧美三区在线| 欧美精品一级| 麻豆精品精华液| 久久精品久久综合| 久久频这里精品99香蕉| 亚洲一品av免费观看| 亚洲精品乱码久久久久久久久| 国产午夜精品一区二区三区视频| 欧美午夜a级限制福利片| 久久日韩粉嫩一区二区三区| 欧美一区二区三区免费看| 亚洲一区免费看|