ADO.NET入门(5)

原创 2004年02月25日 10:31:00
5.更新数据 
   
    Web程序通常利用无程式语句或者通过参数代存储过程来更新数据.但是,当遇见脱线的数据时,你也许希望利用内置服务来更新所有需要修订的记录.为完成这一工作.ADO提供了成批的更新机制. 
   
    UpdateBatch 方法用于把保存在副本缓冲中的 Recordset 更改发送到服务器,以更新数据源。它采用开放式锁定,允许所有挂起的本地更改。它还在单个操作中把所有更改传送到数据源。仅当更改提交后数据源锁定要更改的记录时,才会出现开放式锁定。开放式锁定使两个用户可以同时访问同一个记录,但一个用户输入的更改很快会被另一用户所覆盖。当然,这种方式要求数据源能够检测和防止数据冲突。还要求整个数据源比较稳定,不会发生频繁的更改。否则,不难想象协调费用将很快超过替代严格锁定所带来的节约。事实上,使用 UpdateBatch 方法,在任何更改失败时都会返回一个错误。然后,您可以通过 Errors 集合和 Error 对象来访问该错误。 
   
    要理解 ADO.NET 模型为什么是更新数据的更强大的工具,理解 ADO 中开放式锁定的工作原理是非常关键的。在 ADO 代码中,您无法控制调用 UpdateBatch 之后所发生的一切。也就是说,更新是在服务器上通过滚动已更改的行,然后比较原始值和数据源中对应记录中的当前值来进行的。当所有的值都一致了,才对表执行适当的 SQL 语句(INSERT、UPDATE 或 DELETE)。 
   
    以上陈述说明了你还不能够控制SQL 语句。位于服务器端的更新 代码既不会比你自己写的好,也不会在你采用的非SQL 提供程序的情况下运作。在本章节的开始部份,我已经讲了Web应用程序是典型的通过参数化存储进程来更新数据的过程。不管如何,如果你用批更新,情况就会有所不同. 
   
    在ADO.NET中, 模型已被扩展开来.现在,它采用更为通用的架构,通过它你可以规定你自己关于基本运算的命令语句,如插入,删除,更新以及选择. 更明显的,你可以观察到从数据源里提取数据的企图,并且不管数据源的本性,可以提供相同的支持.ADO.NET中的批更新,要求你创建一个DataSetCommand 对象: SQLDataSetCommand 或者ADODataSetCommand 
   
    注: 在Beta 2中, DataSetCommand对象被称为DataAdapter 对象. 
   
    一旦你采用了DataSetCommand对象,你可以使用它的Update 方法. DataSetCommand提供了一系列属性:如InsertCommand, DeleteCommand, UpdateCommand, and SelectCommand.它们都是Command对象,但你不能够对它们进行设置,除非缺省设置没有按你的要求完成.这与ADO中一样.在Update过程中,如果没有设置xxxCommand属性,但是主关键字已经存在内,则会自动生成Command对象. 
   
    以下代码展示了如何为EmployeesList table设置主关键字, 
   
  DataColumn[] keys = new DataColumn[1]; 
  keys[0] = m_oDS.Tables["EmployeesList"].Columns["EmployeeID"]; 
  m_oDS.Tables["EmployeesList"].PrimaryKey = keys; 
   
    主关键字基本上是是DataColumn对象的一个数组. 
   
    如果你想利用存储过程来更新表单,或者你利用专用非SQL 数据提供程序进行操作,那么你将会常常用到这 些命令属性. 

【Ado.Net】基础知识+简单实例

为什么要学Ado.Net?   作为程序员,我们一般都可以在Sql Server 的查询分析器里面查看和操作数据库中的数据。但是普通的用户如果要查看和操作数据库中的数据,在查询分析器里面就不会了,我...
  • Gnd15732625435
  • Gnd15732625435
  • 2017年02月04日 21:59
  • 399

ADO.NET 基础教程(二)

上一节讲到了怎样使用ADO.NET来查询数据,这节讲怎么样运行SQL的SELECT、INSERT和UPDATE命令及存储过程1、存储过程C#的代码如下:///   /// 存储过程参数结构  /// ...
  • lovelyxc
  • lovelyxc
  • 2005年06月16日 10:25
  • 1698

ADO.NET入门 5

  5.更新数据    Web程序通常利用无程式语句或者通过参数代存储过程来更新数据.但是,当遇见脱线的数据时,你也许希望利用内置服务来更新所有需要修订的记录.为完成这一工作.ADO提供了成批的更新机...
  • masterall
  • masterall
  • 2005年09月10日 01:25
  • 800

ADO.NET4从入门到精通/微软技术丛书(奋斗的小鸟)_PDF 电子书

下载地址:
  • tjoy2005
  • tjoy2005
  • 2013年10月09日 14:06
  • 1471

从零基础入门进行讲解:C#,WINFORM,ADO.NET,ASP.NET的教学视频

从零基础入门进行讲解:   C#,WINFORM,ADO.NET,ASP.NET的教学视频
  • guojun91
  • guojun91
  • 2014年10月13日 11:32
  • 763

ADO.NET数据库应用开发 pdf电子书

内容简介: ADO.NET数据库应用开发详细讲解用ado.net进行数据库开发的方法,分为3篇共12章,包括ado.net、数据库和集成开发环境的基础知识,应用开发的各项技术与方法,用大量实例讲解技...
  • kwworms
  • kwworms
  • 2013年12月05日 00:22
  • 1294

漫谈 ADO.NET之四大核心对象

本人热爱Java,可最终做了c#工作,人生之一大憾事,俗话说,水浅王八多,遍地是大哥,也只好苟存于社会的残垣瓦砾之下! 下面是第一次使用四个“小对象”的具体实现代码 (Oracle 数据库) u...
  • who_is_that
  • who_is_that
  • 2016年06月27日 15:47
  • 502

传智播客html视频教程(第六季) 杨中科

《第6季html》讲解HTML的基础,本系列主要讲解HTML基础提高、CSS、DIV+CSS布局等内容。学习JavaScriptDom、JQuery、ASP.net之前必须牢固掌握HTML。这套视频中...
  • websssssss
  • websssssss
  • 2014年08月18日 17:48
  • 565

《Android5从入门到精通》

Android系统是目前最为流行的智能手机操作系统。为了帮助开发人员快速掌握 Android开发技术,获取更好的就业机会,作者基于 Android SDK 5.1(API Level 22)编写了本书...
  • brucexia
  • brucexia
  • 2016年05月21日 21:07
  • 1371

QT5 入门

通过 QT designer 设计的界面会生成 一个 Ui_MainWindow的类,MainWindow是用户自己定义的类名。 在ui_mainwindow.h 文件中首先定义了Ui_MainW...
  • zwjzwj108108
  • zwjzwj108108
  • 2018年01月10日 21:51
  • 85
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:ADO.NET入门(5)
举报原因:
原因补充:

(最多只允许输入30个字)