一区二区三区日韩精品-日韩经典一区二区三区-五月激情综合丁香婷婷-欧美精品中文字幕专区

分享

批量刪除的思路

 聽(tīng)風(fēng)的歌00 2011-11-29

banprivate void DataGridViewSave()
{
string strConnection = "server=.;uid=sa;pwd=;database=Test;";
if (ds.HasChanges())
{
try
{
SqlDataAdapter adapter = new SqlDataAdapter("select * from tab_Test", new SqlConnection(strConnection));

SqlCommandBuilder cmdBuilder = new SqlCommandBuilder(adapter);

adapter.DeleteCommand = new SqlCommand("", new SqlConnection(strConnection));
adapter.InsertCommand = new SqlCommand("", new SqlConnection(strConnection));
adapter.UpdateCommand = new SqlCommand("", new SqlConnection(strConnection));
adapter.SelectCommand = new SqlCommand("select * from tab_Test", new SqlConnection(strConnection));

adapter.DeleteCommand = cmdBuilder.GetDeleteCommand();
adapter.InsertCommand = cmdBuilder.GetInsertCommand();
adapter.UpdateCommand = cmdBuilder.GetUpdateCommand();
adapter.Update(ds);
}
catch (Exception ex)
{
throw ex;
}
}
}
最后保存的時(shí)候調(diào)用就行了,ds是你綁定到datagridview的數(shù)據(jù)源,
“select * from tab_Test”紅色是你的表名
這個(gè)只能針對(duì)單個(gè)表做批量操作,并且表要有關(guān)鍵字


 
 
 
 

用SqlCommandBuilder 實(shí)現(xiàn)批量更新(2008-08-29 12:25:50)

一般是這樣的,如果用設(shè)計(jì)器將SqlDataAdapter拖到頁(yè)面中使用時(shí),不會(huì)出現(xiàn)SqlDataAdapter.Update(ds)更新時(shí)出錯(cuò)情況,因?yàn)橄到y(tǒng)會(huì)自動(dòng)生成SqlDataAdapter的屬性命令,比如: .UpdateCommane insertCommand selectCommand等。 但是有些程序員不喜歡用設(shè)計(jì)器,或者是有些地方?jīng)]必要拖動(dòng)SqlDataAdapter這么個(gè)龐大物來(lái)實(shí)現(xiàn),那么SqlDataAdapter就不會(huì)自動(dòng)生成相關(guān)的查詢或更新語(yǔ)句了. 所以當(dāng)執(zhí)行到SqlDataAdapter.Update(ds)語(yǔ)句時(shí),SqlDataAdapter橋接器不知道更新哪個(gè)表.不報(bào)錯(cuò)了.

解決方法:

用SqlCommandBuilder 實(shí)現(xiàn)批量更新

1.功能:

可以實(shí)現(xiàn)你對(duì)DataSet在UI層做任意操作后,直接丟給這個(gè)方法,這個(gè)方法就可以自動(dòng)把你的修改更 新到數(shù)據(jù)庫(kù)中,而沒(méi)必要每次都更新到

數(shù)據(jù)庫(kù)

2.使用方法
public int UpdateByDataSet(DataSet ds,string strTblName,string strConnection)
{
try
{
SqlConnection conn = new SqlConnection(strConnection));
SqlDataAdapter myAdapter = new SqlDataAdapter();
SqlCommand myCommand = new SqlCommand("select * from "+strTblName),(SqlConnection)this.conn);
myAdapter.SelectCommand = myCommand;
SqlCommandBuilder myCommandBuilder = new SqlCommandBuilder(myAdapter);
myAdapter.Update(ds,strTblName);
return 0;
}
catch(BusinessException errBU)
{
throw errBU;
}
catch(Exception err)
{
throw new BusinessException(err);
}
}

直接調(diào)用這個(gè)方法就可以啦,說(shuō)明的一點(diǎn)是select * from "+strTblName是一定要的,
作用大家也應(yīng)該想到了,主要是告訴 SqlDataAdapter更新哪個(gè)表

3.什么時(shí)候用?

a. 有時(shí)候需要緩存的時(shí)候,比如說(shuō)在一個(gè)商品選擇界面,選擇好商品,并且進(jìn)行編輯/刪除/更新后,

最后一并交給數(shù)據(jù)庫(kù),而不是每一步操作都訪問(wèn)數(shù)據(jù)庫(kù),因?yàn)榭蛻暨x擇商品可能進(jìn)行n次編輯/刪除

更新操作,如果每次都提交,不但容易引起數(shù)據(jù)庫(kù)沖突,引發(fā)錯(cuò)誤,而且當(dāng)數(shù)據(jù)量很大時(shí)在用戶執(zhí)行

效率上也變得有些慢

b.有的界面是這樣的有的界面是這樣的,需求要求一定用緩存實(shí)現(xiàn),確認(rèn)之前的操作不提交到庫(kù),點(diǎn)擊

頁(yè)面專(zhuān)門(mén)提交的按鈕時(shí)才提交商品選擇信息和商品的其它信息. 我經(jīng)常遇到這樣的情況

c.有些情況下只往數(shù)據(jù)庫(kù)里更新,不讀取. 也就是說(shuō)沒(méi)有從數(shù)據(jù)庫(kù)里讀,SqlDataAdapter也就不知道是
更新哪張表了,調(diào)用Update就很可能出錯(cuò)了。這樣的情況下可以用SqlCommandBuilder 了.

4.
注意點(diǎn):
1.只能更新一個(gè)表,不能更新兩個(gè)或兩個(gè)以上相關(guān)聯(lián)的表
2.表中必須有主鍵
3.更新的表中字段不能有image類(lèi)型的

5.優(yōu)點(diǎn):

節(jié)省代碼量,節(jié)省時(shí)間,這個(gè)方法可以代替所有的: 更新/刪除/插入操作語(yǔ)句

6.缺點(diǎn):
訪問(wèn)兩次數(shù)據(jù)庫(kù)(select * TableName,就是這句,要確認(rèn)是哪個(gè)表,除非是很大的數(shù)據(jù)量,
一般是感覺(jué)不到的),效率有些慢

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買(mǎi)等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類(lèi)似文章 更多

    欧美精品久久一二三区| 亚洲黄色在线观看免费高清| 香蕉久久夜色精品国产尤物| 亚洲中文字幕日韩在线| 欧美在线视频一区观看| 四十女人口红哪个色好看| 熟妇久久人妻中文字幕| 中文人妻精品一区二区三区四区| 亚洲欧洲成人精品香蕉网| 六月丁香六月综合缴情| 香蕉网尹人综合在线观看| 久久99爱爱视频视频| 欧美国产精品区一区二区三区| 99久久精品视频一区二区| 日本亚洲精品在线观看| 日韩精品免费一区二区三区| 欧美尤物在线观看西比尔| 欧美亚洲91在线视频| 在线免费不卡亚洲国产| 久久99这里只精品热在线| 俄罗斯胖女人性生活视频| 一区二区三区人妻在线| 国产内射在线激情一区| 高潮日韩福利在线观看| 国产亚洲欧美一区二区| 麻豆视传媒短视频在线看| 亚洲国产综合久久天堂| 少妇人妻一级片一区二区三区| 国产小青蛙全集免费看| 日韩精品你懂的在线观看| 欧美日韩国内一区二区| 亚洲国产四季欧美一区| 99热中文字幕在线精品| 99久久精品午夜一区| 又色又爽又黄的三级视频| 日本在线高清精品人妻| 大伊香蕉一区二区三区| 日韩不卡一区二区在线| 亚洲精品国产福利在线| 在线观看视频成人午夜| 午夜精品一区二区av|