麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 編程 > .NET > 正文

SqlCommandBuilder如何實現批量更新

2024-07-10 13:29:35
字體:
來源:轉載
供稿:網友

這篇文章主要介紹了SqlCommandBuilder如何實現批量更新,需要的朋友可以參考下

一般是這樣的,如果用設計器將SqlDataAdapter拖到頁面中使用時,不會出現SqlDataAdapter.Update(ds)更新時出錯情況,因為系統會自動生成SqlDataAdapter的屬性命令,比如: .UpdateCommane insertCommand selectCommand等。 但是有些程序員不喜歡用設計器,或者是有些地方沒必要拖動SqlDataAdapter這么個龐大物來實現,那么SqlDataAdapter就不會自動生成相關的查詢或更新語句了。 所以當執行到SqlDataAdapter.Update(ds)語句時,SqlDataAdapter橋接器不知道更新哪個表不報錯了。

解決方法:用SqlCommandBuilder 實現批量更新

1.功能:

可以實現你對DataSet在UI層做任意操作后,直接丟給這個方法,這個方法就可以自動把你的修改更 新到數 據庫中,而沒必要每次都更新到數據庫

2.使用方法

 

 
  1. public int UpdateByDataSet(DataSet ds,string strTblName,string strConnection) 
  2. try 
  3. SqlConnection conn = new SqlConnection(strConnection)); 
  4. SqlDataAdapter myAdapter = new SqlDataAdapter(); 
  5. SqlCommand myCommand = new SqlCommand("select * from "+strTblName),(SqlConnection)this.conn);  
  6. myAdapter.SelectCommand = myCommand; 
  7. SqlCommandBuilder myCommandBuilder = new SqlCommandBuilder(myAdapter);  
  8. myAdapter.Update(ds,strTblName);  
  9. return 0; 
  10. catch(BusinessException errBU) 
  11. {  
  12. throw errBU; 
  13. }  
  14. catch(Exception err) 
  15. {  
  16. throw new BusinessException(err); 

直接調用這個方法就可以啦,說明的一點是select * from "+strTblName是一定要的,作用大家也應該想到了,主要是告訴SqlDataAdapter更新哪個表。

3.什么時候用?

a. 有時候需要緩存的時候,比如說在一個商品選擇界面,選擇好商品,并且進行編輯/刪除/更新后,

最后一并交給數據庫,而不是每一步操作都訪問數據庫,因為客戶選擇商品可能進行n次編輯/刪除

更新操作,如果每次都提交,不但容易引起數據庫沖突,引發錯誤,而且當數據量很大時在用戶執行

效率上也變得有些慢

b.有的界面是這樣的有的界面是這樣的,需求要求一定用緩存實現,確認之前的操作不提交到庫,點擊

頁面專門提交的按鈕時才提交商品選擇信息和商品的其它信息. 我經常遇到這樣的情況

c.有些情況下只往數據庫里更新,不讀取. 也就是說沒有從數據庫里讀,SqlDataAdapter也就不知道是

更新哪張表了,調用Update就很可能出錯了。這樣的情況下可以用SqlCommandBuilder 了.

4.注意點:

1).只能更新一個表,不能更新兩個或兩個以上相關聯的表

2).表中必須有主鍵

3).更新的表中字段不能有image類型的

5.優點:

節省代碼量,節省時間,這個方法可以代替所有的: 更新/刪除/插入操作語句

6.缺點:

訪問兩次數據庫(select * TableName,就是這句,要確認是哪個表,除非是很大的數據量,一般是感覺不到的),效率有些慢。

以上就是用SqlCommandBuilder 實現批量更新的方法,介紹了其優缺點,以及注意點,內容很詳細,希望大家可以喜歡。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 免费毛片电影 | 香蕉视频1024 | 亚洲国产馆 | 99激情| 亚洲一区二区三区在线免费观看 | 亚洲一区二区三区高清 | 欧美成人理论片乱 | 美女久久久久 | 牛牛a级毛片在线播放 | 欧美 videos粗暴 | 91av在线免费播放 | 午夜视频导航 | 免费的性生活视频 | www.17c亚洲蜜桃 | 久久久久久久久久久av | 亚洲国产精品二区 | 日韩黄色一级视频 | 国产一区视频免费观看 | 欧美性受xxxxxx黑人xyx性爽 | 98国内自拍在线视频 | 国产精品久久久久久婷婷天堂 | 亚洲精品欧美二区三区中文字幕 | 精品一区二区三区四区在线 | 91在线精品亚洲一区二区 | 91九色网址 | 美国黄色毛片女人性生活片 | 在线91视频 | 91午夜视频| 男女羞羞视频 | 久久久久久久亚洲精品 | 亚洲精品久久久久久久久久久 | gogo全球大胆高清人露出91 | 国产一区二区视频网站 | 成人不卡一区二区 | 一级做受毛片免费大片 | 精品无吗乱吗av国产爱色 | jj视频在线播放 | 亚洲成人国产综合 | 国产v综合v亚洲欧美久久 | 看免费一级毛片 | 香蕉久久久久久 |