首页    新闻    下载    文档    论坛     最新漏洞    黑客教程    数据库    搜索    小榕软件实验室怀旧版    星际争霸WEB版    最新IP准确查询   
名称: 密码:      忘记密码  马上注册
操作系统 :: windows

ADO.NET入门(5)


http://www.gipsky.com/
  <P style="TEXT-INDENT: 18pt; mso-char-indent-count: 2.0"><FONT face=宋体><STRONG><SPAN lang=EN-US style="FONT-SIZE: 9pt">5.<SPAN style="FONT-SIZE: 9pt">更新数据<SPAN lang=EN-US><?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /><o:p></o:p></STRONG></FONT>



  <P style="TEXT-INDENT: 18pt; mso-char-indent-count: 2.0"><FONT face=宋体><SPAN lang=EN-US style="FONT-SIZE: 9pt">Web<SPAN style="FONT-SIZE: 9pt">程序通常利用无程式语句或者通过参数代存储过程来更新数据<SPAN lang=EN-US>.但是<SPAN lang=EN-US>,当遇见脱线的数据时<SPAN lang=EN-US>,你也许希望利用内置服务来更新所有需要修订的记录<SPAN lang=EN-US>.为完成这一工作<SPAN lang=EN-US>.ADO提供了成批的更新机制<SPAN lang=EN-US>.<o:p></o:p></FONT>



  <P style="TEXT-INDENT: 18pt; mso-char-indent-count: 2.0"><FONT face=宋体><SPAN lang=EN-US style="FONT-SIZE: 9pt">UpdateBatch <SPAN style="FONT-SIZE: 9pt">方法用于把保存在副本缓冲中的<SPAN lang=EN-US> Recordset 更改发送到服务器,以更新数据源。它采用开放式锁定,允许所有挂起的本地更改。它还在单个操作中把所有更改传送到数据源。仅当更改提交后数据源锁定要更改的记录时,才会出现开放式锁定。开放式锁定使两个用户可以同时访问同一个记录,但一个用户输入的更改很快会被另一用户所覆盖。当然,这种方式要求数据源能够检测和防止数据冲突。还要求整个数据源比较稳定,不会发生频繁的更改。否则,不难想象协调费用将很快超过替代严格锁定所带来的节约。事实上,使用<SPAN lang=EN-US> UpdateBatch 方法,在任何更改失败时都会返回一个错误。然后,您可以通过<SPAN lang=EN-US> Errors 集合和<SPAN lang=EN-US> Error 对象来访问该错误。<SPAN lang=EN-US><o:p></o:p></FONT>



  <P style="TEXT-INDENT: 18pt; mso-char-indent-count: 2.0"><SPAN style="FONT-SIZE: 9pt"><FONT face=宋体>要理解<SPAN lang=EN-US> ADO.NET 模型为什么是更新数据的更强大的工具,理解<SPAN lang=EN-US> ADO 中开放式锁定的工作原理是非常关键的。在<SPAN lang=EN-US> ADO 代码中,您无法控制调用<SPAN lang=EN-US> UpdateBatch 之后所发生的一切。也就是说,更新是在服务器上通过滚动已更改的行<SPAN lang=EN-US>,然后比较原始值和数据源中对应记录中的当前值来进行的。当所有的值都一致了,才对表执行适当的<SPAN lang=EN-US> SQL 语句(<SPAN lang=EN-US>INSERT、<SPAN lang=EN-US>UPDATE 或<SPAN lang=EN-US> DELETE)。<SPAN lang=EN-US><o:p></o:p></FONT>



  <P style="TEXT-INDENT: 18pt; mso-char-indent-count: 2.0"><SPAN style="FONT-SIZE: 9pt"><FONT face=宋体>以上陈述说明了你还不能够控制<SPAN lang=EN-US>SQL 语句。位于服务器端的更新 代码既不会比你自己写的好,也不会在你采用的非<SPAN lang=EN-US>SQL 提供程序的情况下运作。在本章节的开始部份,我已经讲了<SPAN lang=EN-US>Web应用程序是典型的通过参数化存储进程来更新数据的过程。不管如何,如果你用批更新,情况就会有所不同<SPAN lang=EN-US>.<o:p></o:p></FONT>



  <P style="TEXT-INDENT: 18pt; mso-char-indent-count: 2.0"><SPAN style="FONT-SIZE: 9pt"><FONT face=宋体>在<SPAN lang=EN-US>ADO.NET中<SPAN lang=EN-US>, 模型已被扩展开来<SPAN lang=EN-US>.现在<SPAN lang=EN-US>,它采用更为通用的架构<SPAN lang=EN-US>,通过它你可以规定你自己关于基本运算的命令语句<SPAN lang=EN-US>,如插入<SPAN lang=EN-US>,删除<SPAN lang=EN-US>,更新以及选择<SPAN lang=EN-US>. 更明显的<SPAN lang=EN-US>,你可以观察到从数据源里提取数据的企图<SPAN lang=EN-US>,并且不管数据源的本性<SPAN lang=EN-US>,可以提供相同的支持<SPAN lang=EN-US>.ADO.NET中的批更新<SPAN lang=EN-US>,要求你创建一个<SPAN lang=EN-US>DataSetCommand 对象<SPAN lang=EN-US>: SQLDataSetCommand 或者<SPAN lang=EN-US>ADODataSetCommand<o:p></o:p></FONT>



  <P style="TEXT-INDENT: 18pt; mso-char-indent-count: 2.0"><SPAN style="FONT-SIZE: 9pt"><FONT face=宋体>注<SPAN lang=EN-US>: 在<SPAN lang=EN-US>Beta 2中<SPAN lang=EN-US>, DataSetCommand对象被称为<SPAN lang=EN-US>DataAdapter 对象<SPAN lang=EN-US>.<o:p></o:p></FONT>



  <P style="TEXT-INDENT: 18pt; mso-char-indent-count: 2.0"><SPAN style="FONT-SIZE: 9pt"><FONT face=宋体>一旦你采用了<SPAN lang=EN-US>DataSetCommand对象<SPAN lang=EN-US>,你可以使用它的<SPAN lang=EN-US>Update 方法<SPAN lang=EN-US>. DataSetCommand提供了一系列属性<SPAN lang=EN-US>:如<SPAN lang=EN-US>InsertCommand, DeleteCommand, UpdateCommand, and SelectCommand.它们都是<SPAN lang=EN-US>Command对象<SPAN lang=EN-US>,但你不能够对它们进行设置<SPAN lang=EN-US>,除非缺省设置没有按你的要求完成<SPAN lang=EN-US>.这与<SPAN lang=EN-US>ADO中一样<SPAN lang=EN-US>.在<SPAN lang=EN-US>Update过程中<SPAN lang=EN-US>,如果没有设置<SPAN lang=EN-US>xxxCommand属性<SPAN lang=EN-US>,但是主关键字已经存在内<SPAN lang=EN-US>,则会自动生成<SPAN lang=EN-US>Command对象<SPAN lang=EN-US>.<o:p></o:p></FONT>



  <P style="TEXT-INDENT: 18pt; mso-char-indent-count: 2.0"><SPAN style="FONT-SIZE: 9pt"><FONT face=宋体>以下代码展示了如何为<SPAN lang=EN-US>EmployeesList table设置主关键字<SPAN lang=EN-US>,<o:p></o:p></FONT>



  <P style="TEXT-INDENT: 18pt; mso-char-indent-count: 2.0"><SPAN lang=EN-US style="FONT-SIZE: 9pt"><FONT face=宋体>DataColumn[] keys = new DataColumn[1];



  keys[0] = m_oDS.Tables["EmployeesList"].Columns["EmployeeID"];



  m_oDS.Tables["EmployeesList"].PrimaryKey = keys;<o:p></o:p></FONT>



  <P style="TEXT-INDENT: 18pt; mso-char-indent-count: 2.0"><SPAN style="FONT-SIZE: 9pt"><FONT face=宋体>主关键字基本上是是<SPAN lang=EN-US>DataColumn对象的一个数组<SPAN lang=EN-US>.<o:p></o:p></FONT>



  <P style="TEXT-INDENT: 18pt; mso-char-indent-count: 2.0"><SPAN style="FONT-SIZE: 9pt"><FONT face=宋体>如果你想利用存储过程来更新表单<SPAN lang=EN-US>,或者你利用专用非<SPAN lang=EN-US>SQL 数据提供程序进行操作<SPAN lang=EN-US>,那么你将会常常用到这 些命令属性<SPAN lang=EN-US>.</FONT>





<h6>您可能感兴趣的:</h6>
<p><a target="_blank" href="http://www.google.com/search?oe=utf8& ... =en&q=site:gipsky.com ADO.NET????(5)" title="更多相关内容">更多相关内容</a></p>
<ul>
<li><a href="http://www.gipsky.com/81057.html">正文- 安装php-5.2.<b>5</b> RedHat Linux升级libxml2库- Linux文库</a></li>
<li><a href="http://www.gipsky.com/28348.html">正文- FreeBSD 6.1上用<b>net</b>-snmp-5.2.2和mrtg-2.13.2实现多种监控 <b>...</b></a></li>
<li><a href="http://www.gipsky.com/81248.html">正文- 打造自己的Linux常用应用软件列表- Linux文库</a></li>
<li><a href="http://www.gipsky.com/56294.html">正文- 用JavaScript实现上下文字滚动特效- Linux文库</a></li>
<li><a href="http://www.gipsky.com/48425.html">正文- 轻松访问<b>ADO</b>.<b>NET</b>数据库- Linux文库</a></li>
<li><a href="http://www.gipsky.com/1660.html">正文- redhat7.2下面配置VPN客户端- Linux文库</a></li>
<li><a href="http://www.gipsky.com/81104.html">正文- Ubuntu 8.04 Lighttpd Mono 支持.<b>net</b> - Linux文库</a></li>
<li><a href="http://www.gipsky.com/23590.html">正文- Cisco2501路由器DDN配置方法- Linux文库</a></li>
</ul>
<< 用ADO.NET管理数据库 ADO.NET入门(4) >>
API:
gipsky.com& 安信网络
网友个人意见,不代表本站立场。对于发言内容,由发表者自负责任。

系统导航

 

Copyright © 2001-2010 安信网络. All Rights Reserved
京ICP备14013333号-8