ADO.NET入门 6

来源:互联网 发布:多益网络校招问题提问 编辑:程序博客网 时间:2024/05/13 03:10
6.XML的延展支持功能
    在ADO中,XML仅仅只是作为输入和输出格式.但是,在ADO.NET中,XML作为数据记录
格式为你提供了一系列的方法,如: manipulating, reorganizing, sharing, and tran
sferring. 任何你输入进到DataSet中的数据,不管是不是原创,都能够通过双面编程模型
进行处理.
    如同XML文档一样,DataSet 读取/书写数据和模式。数据和模式在HTTP中是可转
移的,也可以在任一支持XML的平台上运行。相同的数据在不同的时间段通过不同的模式
可以被执行。你利用ReadXmlSchema来书写模式。 XML模式包含了data set中tables 的
名称,如同data set 中的relations 和 constraints一样。在调用ReadXmlData之前你
应该完成这个步骤
    以下代码示例是一个显示可更新数据表的最简单的 ASP.NET 页面。
  <%@ Import Namespace="System.Data" %>
  <%@ Import Namespace="System.IO" %>
  <script runat="server" language="C#">
  void Page_Load(Object source, EventArgs e)
  {
  DataSet data = new DataSet();
  // Loads XML data and schema
  StreamReader sr;
  sr = new StreamReader(Server.MapPath("data.xml"));
  data.ReadXml(sr);
  sr.Close();
  // Add a new record passed through the URL
  if (Request.QueryString.Count >0)
  {
  DataTable dt = data.Tables[0];
  DataRow dr = dt.NewRow();
  dr["FirstName"] = Request.QueryString["First"];
  dr["LastName"] = Request.QueryString["Last"];
  dt.Rows.Add(dr);
  dt.AcceptChanges();
  StreamWriter sw;
  sw = new StreamWriter(Server.MapPath("data.xml"));
  data.WriteXml(sw);
  sw.Close();
  }
  // Refreshes the UI (made of a grid)
  grid.DataSource = data.Tables[0].DefaultView;
  grid.DataBind();
  }
  </script>
    如图 2 所示,您可以将新的行添加到表中。然而,它不涉及 SQL Server 或 Ac
cess 表。它只是一个 XML 文件,在处理它的代码中,没有使用 XML 节点或 XMLDOM 方
法。您可以用相同的直观数据表接口来读取和更新 XML 记录。您的工作方式与在 ADO
中大致相同,但此处的模型更深入、更庞大,有更多的潜力供您去发掘。
       Figure 2. Example of an updateable table
    7.结论
    Web 应用程序的成功改变了典型分布式系统的面貌。现在大多数分布式系统都是
n 层系统,这类系统对扩展性和互操作性的要求越来越高。因此,非连接数据处理和
XML 成为最佳实践,并为业界广为接受。
    ADO.NET试图将一些现有的在.NET旗下最好的精华都统成为一体.对于数据访问的
所有的编程模式就综合性的,并是非常强大的.也许该模式不能一一满足你的每个要求,但
它朝模式设计方向跨出了一大步,不管如何,请记住ADO.NET只是一个测试版,而且只有有
限的文档支持.
    ADO程序员从该测试版中将会受益非浅,因为他们已经熟悉了关于ADO.NET的方方面
面,包括关于abstraction的最高层次-- inspiring 模型. ADO.NET代码与现有的ADO代码
并不兼容,但是功能却近似. 为完全发挥ADO.NET 的优势,与其只是简单的计算出最快的
方式来放置代码,还不如实实在在的弄清楚ADO.NET它本身的要领.不管如何,.你所选择的
NET编程模式-- Windows Forms, Web Forms, or Web Services,ADO.NET都会在数据存取
方面帮你一把.
原创粉丝点击