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

主頁 > 知識庫 > SqlCommandBuilder如何實現批量更新

SqlCommandBuilder如何實現批量更新

熱門標簽:400電話辦理哪家性價比高 地圖標注專業團隊 遂寧市地圖標注app 濮陽外呼電銷系統怎么樣 天心智能電銷機器人 塔城代理外呼系統 代理接電話機器人如何取消 地圖定位圖標標注 地圖標注的公司有哪些

一般是這樣的,如果用設計器將SqlDataAdapter拖到頁面中使用時,不會出現SqlDataAdapter.Update(ds)更新時出錯情況,因為系統會自動生成SqlDataAdapter的屬性命令,比如: .UpdateCommane insertCommand selectCommand等。  但是有些程序員不喜歡用設計器,或者是有些地方沒必要拖動SqlDataAdapter這么個龐大物來實現,那么SqlDataAdapter就不會自動生成相關的查詢或更新語句了。 所以當執行到SqlDataAdapter.Update(ds)語句時,SqlDataAdapter橋接器不知道更新哪個表不報錯了。
解決方法:用SqlCommandBuilder 實現批量更新
1.功能:
可以實現你對DataSet在UI層做任意操作后,直接丟給這個方法,這個方法就可以自動把你的修改更 新到數 據庫中,而沒必要每次都更新到數據庫
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);
}
}

直接調用這個方法就可以啦,說明的一點是select * from "+strTblName是一定要的,作用大家也應該想到了,主要是告訴SqlDataAdapter更新哪個表。
3.什么時候用?
    a. 有時候需要緩存的時候,比如說在一個商品選擇界面,選擇好商品,并且進行編輯/刪除/更新后,
       最后一并交給數據庫,而不是每一步操作都訪問數據庫,因為客戶選擇商品可能進行n次編輯/刪除
       更新操作,如果每次都提交,不但容易引起數據庫沖突,引發錯誤,而且當數據量很大時在用戶執行
       效率上也變得有些慢
    b.有的界面是這樣的有的界面是這樣的,需求要求一定用緩存實現,確認之前的操作不提交到庫,點擊
      頁面專門提交的按鈕時才提交商品選擇信息和商品的其它信息. 我經常遇到這樣的情況
    c.有些情況下只往數據庫里更新,不讀取. 也就是說沒有從數據庫里讀,SqlDataAdapter也就不知道是
      更新哪張表了,調用Update就很可能出錯了。這樣的情況下可以用SqlCommandBuilder 了.
4.注意點:
   1).只能更新一個表,不能更新兩個或兩個以上相關聯的表
   2).表中必須有主鍵
   3).更新的表中字段不能有image類型的
5.優點:
    節省代碼量,節省時間,這個方法可以代替所有的:  更新/刪除/插入操作語句
6.缺點:
    訪問兩次數據庫(select * TableName,就是這句,要確認是哪個表,除非是很大的數據量, 一般是感覺不到的),效率有些慢。

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

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

標簽:本溪 宜春 河南 重慶 汕頭 吉林 婁底 麗江

巨人網絡通訊聲明:本文標題《SqlCommandBuilder如何實現批量更新》,本文關鍵詞  SqlCommandBuilder,如何,實現,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《SqlCommandBuilder如何實現批量更新》相關的同類信息!
  • 本頁收集關于SqlCommandBuilder如何實現批量更新的相關信息資訊供網民參考!
  • 推薦文章
    主站蜘蛛池模板: 兰考县| 荃湾区| 雷波县| 云林县| 千阳县| 东兰县| 顺平县| 大同市| 祁阳县| 开封县| 雷州市| 鹿泉市| 德化县| 疏勒县| 南平市| 班戈县| 晋中市| 正镶白旗| 宜宾市| 滦平县| 姜堰市| 涞源县| 托克托县| 老河口市| 柳江县| 邵东县| 武陟县| 休宁县| 阳泉市| 揭东县| 化州市| 涞水县| 高青县| 双流县| 阳曲县| 天台县| 鹰潭市| 高淳县| 武义县| 运城市| 固安县|