首 页 网络编程
网页制作 图形图象 操作系统 冲浪宝典
软件教学 认证考试

网络安全 网络办公 行业资讯 评测对比
您当前位置:站长天空 -> 虚拟主机评测对比
用SqlCommandBuilder 实现批量更新-.NET教程,数据库应用
作者:网友供稿 点击:13
推荐
西部数码-全国虚拟主机10强!20余项虚拟主机管理功能,全国领先!第6代双线路虚拟主机,南北访问畅通无阻!可在线rar解压,自动数据恢复设置虚拟目录等.免费赠送访问统计,企业邮局.Cn域名注册10元/年,自助建站480元起,免费试用7天,满意再付款!P4主机租用799元/月.月付免压金
站内搜索
文章页数:[1] 
 

(一)

  有没有人遇到这种情况,用 sqldataadapter.update(ds)更新时出错?

  answer:   一般是这样的,如果用设计器将sqldataadapter拖到页面中使用时,不会出现这种情况,因为

                  系统会自动生成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,就是这句,要确认是哪个表,除非是很大的数据量,
        一般是感觉不到的),效率有些慢



文章整理:站长天空 网址:http://www.z6688.com/
以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

文章页数:[1] 


放大字体显示 缩小字体显示 打印文章 推荐给朋友
热门文章
·Asp.Net下导出/导入规则的Excel(.xls)文件-ASP教程,ASP应用
·中国万网,万网
·中资源
·上海火速
·加拿大中文网
·华夏名网
·世纪东方
·商务中国
·中国E动网
·神话网络
最新文章
·photoshop抠图合成特效:飞出照片相框_photoshop教程
·将升级的windows vista驱动还原到原来的版本_windows vista
·photoshop漫画笔刷绘制非主流照片漫画_photoshop教程
·看域名注册信息判断网赚公司真假_网赚技巧
·找坐标:对网站进行坐标定位_站长心得
·如何增加网站pv_站长心得
·google性格一:对活跃度高的网页收录很快_google推广
·googleadsense容易被k的可能性列表_google推广
·价值数万的googlepr作弊方_google推广
·如何抢占人家的“首要意念”_google推广
相关主题
西部数码虚拟主机

友情链接
CNNIC 西部数码
万网 自助建站
虚拟主机 asp空间
域名注册 域名
域名申请 主页空间
论坛空间 网站空间
国际域名 虚拟空间
空间租用 DDOS防火墙
成都主机托管 四川主机托管
主机租用 服务器租用
网站目录 自助建站
虚拟主机 网址大全
软件下载
自助链接
虚拟主机资讯 特价虚拟主机
版权申明:本站文章均来自网络,如有侵权,请联系我们,我们收到后立即删除,谢谢!
关于我们:站长天空:专业提供最新的站长资讯、在线教程、虚拟主机权威评测、虚拟主机性能对比、网站制作教程,开发教程,站长工具。包括网页制作教程、冲浪宝典、编程参考、操作系统、软件教学、行业动态等。
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有。
发表评论 打印  刷新     关闭