帝国软件
  设为首页 加入收藏 关于我们
 
解密帝国网站管理系统
栏 目:
 
您的位置:首页 > 技术文档 > ASP.NET编程 >
ADO.NET入门(4)
作者:crystal编译 发布时间:2005-03-12 来源:ASPCOOL
     4.转换现有代码
  
    大量的ASP页面使用ADO对象来抽取数据.让我们一起来回顾下几例典型的案例,对你在以后处理移植或者改写代码时也许会有帮助。
  
    如果你有从单个recordset生成报表的ASP页面,那么DataReader会是你的好帮手。
  
  String strConn, strCmd;
  strConn = "DATABASE=MyAgenda;SERVER=localhost;UID=sa;PWD=;";
  strCmd = "Select * From Names where ID=" + contactID.Text;
  SQLConnection oCN = new SQLConnection(strConn);
  SQLCommand oCMD = new SQLCommand(strCmd, oCN);
  oCN.Open();
  SQLDataReader dr;
  oCMD.Execute(out dr);
  while (dr.Read()) {
  // Use dr.GetString(index) or
  // dr["field name"] to Response.Write data
  }
  
    你可以利用HasMoreRows属性来快速检查是否DataReader为空.如果你仅仅只简单处理一系列记录,没有什么比DataReader.更快,更好的对象了,它同样适用于查询单个记录。
  
    DataReader.的内容是不可编辑的,但你可以将内容移动到更具管理功能的对象里,如:
  
     DataTable或是一个或多个DataRow 对象.
  
    当你需要处理表与记录二者之间的复杂关系时,DataReader就不是合适的工具了。数据模型链接越多,SQL命令则会越复杂。导航模块保有连续性,最后放入缓存的数据往往多于你所需要的,. DataSet 和 DataRelation objects是这种表关系模型的基础.
  
    为管理parent/child 关系,ADO同样也对data-shaping engine进行封装. 总的说来, data shaping 和 ADO .NET 关系是一回事.就设计方面来说,二者几乎没有共同点. Shaped recordsetsct嵌入列表对象中包括了所有数据表信息。ADO.NET关系是动态链接,你可以在两个数据表间随时建立. ADO依靠于Shaping OLE DB service 提供程序,并使用专门的SQL类语言特征以在执行单个ADO命令的过程中生成一个分层的recordset.
  
    在 ADO.NET 中,关系中涉及的每个对象总是被看成单独的个体。关系本身作为对象被公开,并且具有一定的行为规则。例如,DataRelation 对象可以从父行到子行一层层进行更改。您可以通过将 ForeignKeyConstraint 对象添加到 DataTable 的 Constraints 集合中来进行此操作。ForeignKeyConstraint 对象表示当删除或更新数值和行时,对通过外键关系相关联的一组列的约束。如前面提到的,一旦设置好了关系,在它按程序预设终止之前,您不能进行可能破坏该关系的更改。
  
    正如早先提到的一样,一旦设置了relationship,除非它是程序性的终止,你不能够对它进行修改,那样会使它突然中断.
  
    另外, relations没有递延性.你可以在Customers 和Orders之间,Orders 和 Products之间设置两个不同的关系.但是,当为了某个customer而对orders导航时,你不能够从一个order跳到相关的products行.解决方法是,你必须另外打开Orders/Products 关系,锁定你需要的order,然后获取相关的行.
  
    程序员需要在ASP Session 对中存储记录吗?通过ADO .NET 和 DataSet 对象,你可以非常安全的进行工作,而不会引起在"Storing an ADO Recordset in GIT Might Cause An Access Violation"中所论及的麻烦.
  

  
评论】【加入收藏夹】【 】【打印】【关闭
※ 相关链接
 ·ADO.NET入门(6)  (2005-03-12)
 ·ADO.NET入门(5)  (2005-03-12)
 ·在 ADO.NET 数据集中浏览多个相关  (2005-03-12)
 ·在 ADO.NET 数据集中浏览多个相关  (2005-03-12)
 ·在 ADO.NET 数据集中浏览多个相关  (2005-03-12)
 ·在 ADO.NET 数据集中浏览多个相关  (2005-03-12)
 ·在 ADO.NET 数据集中浏览多个相关  (2005-03-12)
 ·在 ADO.NET 数据集中浏览多个相关  (2005-03-12)
 ·漫谈.Net PetShop和Duwamish ADO  (2005-03-12)
 ·漫谈.Net PetShop和Duwamish ADO  (2005-03-12)

   栏目导行
  PHP编程
  ASP编程
  ASP.NET编程
  JAVA编程
   站点最新
·致合作伙伴的欢迎信
·媒体报道
·帝国软件合作伙伴计划协议
·放眼未来 帝国近期将有重大举措!
·PHPWind6.3.2版通行证发布
·帝国备份王2008版正式发布
·帝国备份王2008版发布
·phpcms2007转帝国CMS5.0程序发布
·dedecms5.1转帝国CMS5.0程序发布
·帝国网站管理系统V5.0商业购买说明
   类别最新
·ASP.NET中为DataGrid添加合计字段
·.text urlRewrite介绍
·利用 ASP.NET 的内置功能抵御 Web
·ASP.NET Cache
·用 WebClient.UploadData 方法 上载
·ASP.NET 程序设计-序
·什么是客户端/伺服端(Client/Serve
·因特网应用程序的开发
·网页的种类
·.NET Framework-Microsoft Visual
 
关于帝国 | 广告服务 | 联系我们 | 程序开发 | 网站地图 | 留言板 帝国网站管理系统