最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

 更新時間:2015年10月26日 12:00:41   作者:tracywang  
這篇文章主要介紹了SqlCommandBuilder如何實(shí)現(xiàn)批量更新,需要的朋友可以參考下

一般是這樣的,如果用設(shè)計(jì)器將SqlDataAdapter拖到頁面中使用時,不會出現(xiàn)SqlDataAdapter.Update(ds)更新時出錯情況,因?yàn)橄到y(tǒng)會自動生成SqlDataAdapter的屬性命令,比如: .UpdateCommane insertCommand selectCommand等。  但是有些程序員不喜歡用設(shè)計(jì)器,或者是有些地方?jīng)]必要拖動SqlDataAdapter這么個龐大物來實(shí)現(xiàn),那么SqlDataAdapter就不會自動生成相關(guān)的查詢或更新語句了。 所以當(dāng)執(zhí)行到SqlDataAdapter.Update(ds)語句時,SqlDataAdapter橋接器不知道更新哪個表不報錯了。
解決方法:用SqlCommandBuilder 實(shí)現(xiàn)批量更新
1.功能:
可以實(shí)現(xiàn)你對DataSet在UI層做任意操作后,直接丟給這個方法,這個方法就可以自動把你的修改更 新到數(shù) 據(jù)庫中,而沒必要每次都更新到數(shù)據(jù)庫
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)用這個方法就可以啦,說明的一點(diǎn)是select * from "+strTblName是一定要的,作用大家也應(yīng)該想到了,主要是告訴SqlDataAdapter更新哪個表。
3.什么時候用?
    a. 有時候需要緩存的時候,比如說在一個商品選擇界面,選擇好商品,并且進(jìn)行編輯/刪除/更新后,
       最后一并交給數(shù)據(jù)庫,而不是每一步操作都訪問數(shù)據(jù)庫,因?yàn)榭蛻暨x擇商品可能進(jìn)行n次編輯/刪除
       更新操作,如果每次都提交,不但容易引起數(shù)據(jù)庫沖突,引發(fā)錯誤,而且當(dāng)數(shù)據(jù)量很大時在用戶執(zhí)行
       效率上也變得有些慢
    b.有的界面是這樣的有的界面是這樣的,需求要求一定用緩存實(shí)現(xiàn),確認(rèn)之前的操作不提交到庫,點(diǎn)擊
      頁面專門提交的按鈕時才提交商品選擇信息和商品的其它信息. 我經(jīng)常遇到這樣的情況
    c.有些情況下只往數(shù)據(jù)庫里更新,不讀取. 也就是說沒有從數(shù)據(jù)庫里讀,SqlDataAdapter也就不知道是
      更新哪張表了,調(diào)用Update就很可能出錯了。這樣的情況下可以用SqlCommandBuilder 了.
4.注意點(diǎn):
   1).只能更新一個表,不能更新兩個或兩個以上相關(guān)聯(lián)的表
   2).表中必須有主鍵
   3).更新的表中字段不能有image類型的
5.優(yōu)點(diǎn):
    節(jié)省代碼量,節(jié)省時間,這個方法可以代替所有的:  更新/刪除/插入操作語句
6.缺點(diǎn):
    訪問兩次數(shù)據(jù)庫(select * TableName,就是這句,要確認(rèn)是哪個表,除非是很大的數(shù)據(jù)量, 一般是感覺不到的),效率有些慢。

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

相關(guān)文章

  • ASP.NET MVC3 實(shí)現(xiàn)全站重定向的簡單方法

    ASP.NET MVC3 實(shí)現(xiàn)全站重定向的簡單方法

    這篇文章主要介紹了ASP.NET MVC3 實(shí)現(xiàn)全站重定向的簡單方法,有需要的朋友可以參考一下
    2014-01-01
  • 使用.Net?Core實(shí)現(xiàn)的一個圖形驗(yàn)證碼功能

    使用.Net?Core實(shí)現(xiàn)的一個圖形驗(yàn)證碼功能

    SimpleCaptcha是一個使用簡單,基于.Net Standard 2.0的圖形驗(yàn)證碼模塊。這篇文章主要介紹了使用.Net?Core實(shí)現(xiàn)的一個圖形驗(yàn)證碼功能,需要的朋友可以參考下
    2021-12-12
  • .NET?API?接口數(shù)據(jù)傳輸加密最佳實(shí)踐記錄

    .NET?API?接口數(shù)據(jù)傳輸加密最佳實(shí)踐記錄

    這篇文章主要介紹了.NET?API?接口數(shù)據(jù)傳輸加密最佳實(shí)踐記錄,我們在做?Api?接口時,相信一定會有接觸到要給傳輸?shù)恼埱?body?的內(nèi)容進(jìn)行加密傳輸。其目的就是為了防止一些敏感的內(nèi)容直接被?UI?層查看或篡改,需要的朋友可以參考下
    2022-10-10
  • .net WINFORM的GDI雙緩沖的實(shí)現(xiàn)方法

    .net WINFORM的GDI雙緩沖的實(shí)現(xiàn)方法

    下面小編就為大家分享一篇.net WINFORM的GDI雙緩沖的實(shí)現(xiàn)方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2017-12-12
  • 在.NET Web API設(shè)置響應(yīng)輸出Json數(shù)據(jù)格式常用的兩種方式詳解

    在.NET Web API設(shè)置響應(yīng)輸出Json數(shù)據(jù)格式常用的兩種方式詳解

    在ASP.NET Core Web API中設(shè)置響應(yīng)輸出Json數(shù)據(jù)格式常用以下兩種方式:可以通過添加System.Text.Json或Newtonsoft.JsonJSON序列化和反序列化庫在應(yīng)用程序中全局設(shè)置接口響應(yīng)的Json數(shù)據(jù)格式,本文示例使用的是新的Minimal API模式,感興趣的朋友跟隨小編一起看看吧
    2024-07-07
  • asp.Net JS取母板頁控件值的簡單方法

    asp.Net JS取母板頁控件值的簡單方法

    這篇文章介紹了asp.Net JS取母板頁控件值的簡單方法,有需要的朋友可以參考一下
    2013-07-07
  • asp.net core下給網(wǎng)站做安全設(shè)置的方法詳解

    asp.net core下給網(wǎng)站做安全設(shè)置的方法詳解

    這篇文章主要給大家介紹了關(guān)于asp.net core下給網(wǎng)站做安全設(shè)置的相關(guān)資料,文章通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2018-07-07
  • ASP.NET緩存的方法和最佳實(shí)踐

    ASP.NET緩存的方法和最佳實(shí)踐

    您應(yīng)該在應(yīng)用程序的每一層都實(shí)現(xiàn)緩存。向數(shù)據(jù)層、業(yè)務(wù)邏輯層、UI 或輸出層添加緩存支持。內(nèi)存現(xiàn)在非常便宜 — 因此,通過以智能的方式在整個應(yīng)用程序中實(shí)現(xiàn)緩存,可以獲得很大的性能提高
    2012-04-04
  • 在 .NET Framework 2.0 中未處理的異常導(dǎo)致基于 ASP.NET 的應(yīng)用程序意外退出

    在 .NET Framework 2.0 中未處理的異常導(dǎo)致基于 ASP.NET 的應(yīng)用程序意外退出

    如果在 Microsoft .NET Framework 2.0 上構(gòu)建的基于 Microsoft ASP.NET 的應(yīng)用程序中引發(fā)未處理的異常,該應(yīng)用程序?qū)馔馔顺?。如果出現(xiàn)這個問題,不會在應(yīng)用程序日志中記錄了解此問題所必需的異常信息。
    2009-11-11
  • .NET NativeAOT 用法指南

    .NET NativeAOT 用法指南

    NativeAOT是.NET 8中引入的一種編譯方式,它將代碼編譯成原生代碼,提高性能并節(jié)省資源,然而,NativeAOT也帶來了一些問題,如反射依賴、泛型實(shí)例化等,本文詳細(xì)介紹了如何使用NativeAOT以及如何解決這些常見問題,感興趣的朋友跟隨小編一起看看吧
    2025-01-01

最新評論

杨浦区| 新民市| 沙河市| 乌拉特后旗| 大连市| 湘西| 巴中市| 方城县| 友谊县| 巫山县| 宁陵县| 夏河县| 胶州市| 承德市| 翼城县| 上高县| 武强县| 九江县| 阿瓦提县| 醴陵市| 格尔木市| 邓州市| 普安县| 嘉荫县| 云南省| 福安市| 北海市| 海盐县| 苗栗县| 佛山市| 彭阳县| 修水县| 绥江县| 博兴县| 辽宁省| 施甸县| 南安市| 星座| 潼关县| 龙州县| 沂源县|