婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁(yè) > 知識(shí)庫(kù) > SqlCommandBuilder如何實(shí)現(xiàn)批量更新

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

熱門標(biāo)簽:400電話辦理哪家性價(jià)比高 地圖標(biāo)注專業(yè)團(tuán)隊(duì) 遂寧市地圖標(biāo)注app 濮陽(yáng)外呼電銷系統(tǒng)怎么樣 天心智能電銷機(jī)器人 塔城代理外呼系統(tǒng) 代理接電話機(jī)器人如何取消 地圖定位圖標(biāo)標(biāo)注 地圖標(biāo)注的公司有哪些

一般是這樣的,如果用設(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ù)中,而沒必要每次都更新到數(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è)面專門提交的按鈕時(shí)才提交商品選擇信息和商品的其它信息. 我經(jīng)常遇到這樣的情況
    c.有些情況下只往數(shù)據(jù)庫(kù)里更新,不讀取. 也就是說(shuō)沒有從數(shù)據(jù)庫(kù)里讀,SqlDataAdapter也就不知道是
      更新哪張表了,調(diào)用Update就很可能出錯(cuò)了。這樣的情況下可以用SqlCommandBuilder 了.
4.注意點(diǎn):
   1).只能更新一個(gè)表,不能更新兩個(gè)或兩個(gè)以上相關(guān)聯(lián)的表
   2).表中必須有主鍵
   3).更新的表中字段不能有image類型的
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ù)量, 一般是感覺不到的),效率有些慢。

以上就是用SqlCommandBuilder 實(shí)現(xiàn)批量更新的方法,介紹了其優(yōu)缺點(diǎn),以及注意點(diǎn),內(nèi)容很詳細(xì),希望大家可以喜歡。

您可能感興趣的文章:
  • JBuilderX+SQL Server開發(fā)hibernate
  • jbuilder2006連接sqlserver2000的方法
  • asp.net Reporting Service在Web Application中的應(yīng)用
  • mysqlreport顯示Com_中change_db占用比例高的問(wèn)題的解決方法
  • PHP函數(shù)之error_reporting(E_ALL ^ E_NOTICE)詳細(xì)說(shuō)明
  • PHP中error_reporting()函數(shù)的用法(修改PHP屏蔽錯(cuò)誤)
  • SQL Server 2008+ Reporting Services (SSRS)使用USER登錄問(wèn)題
  • SqlCommandBuilder類批量更新excel或者CSV數(shù)據(jù)的方法
  • SQL Report Builder 報(bào)表里面的常見問(wèn)題分析

標(biāo)簽:本溪 宜春 河南 重慶 汕頭 吉林 婁底 麗江

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《SqlCommandBuilder如何實(shí)現(xiàn)批量更新》,本文關(guān)鍵詞  SqlCommandBuilder,如何,實(shí)現(xiàn),;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問(wèn)題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無(wú)關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《SqlCommandBuilder如何實(shí)現(xiàn)批量更新》相關(guān)的同類信息!
  • 本頁(yè)收集關(guān)于SqlCommandBuilder如何實(shí)現(xiàn)批量更新的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    主站蜘蛛池模板: 永善县| 武冈市| 娄烦县| 和平区| 朔州市| 晋宁县| 平罗县| 邵东县| 望谟县| 肥乡县| 莆田市| 阿巴嘎旗| 博客| 汨罗市| 成安县| 合山市| 桐庐县| 岫岩| 雷山县| 永顺县| 澄城县| 定远县| 七台河市| 平陆县| 县级市| 会泽县| 渭源县| 探索| 宜昌市| 禹州市| 霍邱县| 海南省| 英超| 上犹县| 昆山市| 巴林右旗| 天台县| 视频| 五河县| 万年县| 彰武县|