ASP.net Xml: DataSet的ReadXml(), WriteXml()和Response写Xml文档

简介:

 专题图ylbtech-asp.net-logo编号:ylbtechASPnetXml100010011

1,功能描述

   这是一个基于.net操作Xml的案例示例,共有两个示例。

ylb_menu:1, DemoReadXml (DataSet的ReadXml())

ylb_menu:2, DemoWriteXml(DataSet的WriteXml()和Response写Xml文档)

 

2,技术与环境

操作系统:

windows

开发语言:

C#

开发框架:

 

数据库:

开发软件:

Microsoft Visual Studio 2010

开发技术:

 ASP.net+Xml

课程总策划:

yuanbo

成员:

null

个人主页:

http://www.cnblogs.com/ylbtech/

科研团队:

ylbtech

教研团队:

ylbtech

 

3,ylb_menu:1, DemoReadXml ylb_tip:读Xml文档
 
3_1,/Vote.xml
复制代码
<?xml version="1.0" encoding="utf-8"?>
<vote>
  <item belong="三国演义">
    <id>1</id>
    <name>赵云</name>
    <number>100</number>
  </item>
  <item belong="水浒">
    <id>2</id>
    <name>李逵</name>
    <number>4</number>
  </item>
  <item belong="三国演义">
    <id>3</id>
    <name>诸葛亮</name>
    <number>100</number>
  </item>
</vote>
复制代码
 
3_2,/DemoReadXml.aspx.cs  
复制代码
using System;

using System.Data;
public partial class DemoReadXml : System.Web.UI.Page
{
    /// <summary>
    /// ylb;1, 读取XML文档
    /// </summary>
    private void ReadXml()
    { 
        //创建一个虚拟库
        DataSet ds = new DataSet();
        //加载XML
        ds.ReadXml(Server.MapPath("Vote.xml"));

        //取出表
        DataTable dt = ds.Tables[0];

        //遍历表
        Response.Write("<pre>");
        //循环行
        for (int i = 0; i < dt.Rows.Count; i++)
        { 
            //循环列
            for (int j = 0; j < dt.Columns.Count; j++)
            {
                //输出一列的值
                Response.Write(dt.Rows[i][j]+"\t");
            }
            Response.Write("\n");
        }
        Response.Write("</pre>");


        //把虚拟表给GridView
        GridView1.DataSource = dt;
        GridView1.DataBind();
    }
    protected void Page_Load(object sender, EventArgs e)
    {
        //调用
        ReadXml();
    }
}
复制代码

 

4,ylb_menu:2, DemoWriteXml
 
4_1,DemoWriteXml.aspx.cs ylb_tip:写Xml文档,Response写Xml文档
复制代码
using System;

using System.Data;
using System.Data.SqlClient;
public partial class DemoWriteXml : System.Web.UI.Page
{

    /// <summary>
    /// ylb:1,把数据库中的表写成XML文档
    /// 数据读取器(DataReader)
    /// </summary>
    private void WriteXml()
    {
        string sql = "select top 10 productID,productName,unitPrice from Products";
        //string connStr = "Server=.;Database=Northwind;uid=sa;pwd=m123";
        string connStr = "Server=.;Database=Northwind;Integrated Security=SSPI";

        //创建一个虚拟库
        DataSet ds = new DataSet("Northwind");
        //创建一个虚拟表
        DataTable dt = new DataTable("Products");

        SqlConnection conn = new SqlConnection(connStr);
        SqlCommand com = conn.CreateCommand();

        //把sql赋值给com.CommandText
        com.CommandText = sql;
        //peican

        conn.Open();

        //execute
        try
        {
            SqlDataReader sdr = com.ExecuteReader();

            //向虚拟表中加载数据
            dt.Load(sdr);
        }
        finally
        {
            conn.Close();
        }

        //把表添加到库中 
        ds.Tables.Add(dt);

        //写XML文档
        ds.WriteXml(Server.MapPath("Products.xml"));

        Response.Write("写Xml文档成功!");

    }

    
    /// <summary>
    /// ylb:2,把数据库中的表写成XML文档
    /// 用适配器(DataAdapter)
    /// </summary>
    private void WriteXml2()
    {
        string sql = "select top 10 productID,productName,unitPrice from Products";
        string connStr = "Server=.;Database=Northwind;Integrated Security=SSPI";

        //创建一个虚拟表
        DataSet ds = new DataSet("Northwind");

        SqlDataAdapter sdr = new SqlDataAdapter(sql, connStr);

        //用适配器去填充虚拟库
        sdr.Fill(ds);

        ds.Tables[0].TableName = "Products";    //给表格命名        

        //写XML文档
        ds.WriteXml(Server.MapPath("Products2.xml"));

        Response.Write("写Xml文档成功!");
    }

    /// <summary>
    /// ylb:2,把数据库中的表写成XML文档
    /// 用适配器(DataReader)
    /// </summary>
    private void WriteXml3()
    {
        string connStr = "Server=.;Database=Northwind;Integrated Security=SSPI";
        string sql = "select top 10 productId,productName,unitprice from products";


        SqlConnection conn = new SqlConnection();
        conn.ConnectionString = connStr;

        SqlCommand cmd = conn.CreateCommand();
        cmd.CommandText = sql;

        conn.Open();
        try
        {
            //直接输出Xml文档
            Response.ContentType = "text/xml";  //输出文档类型为xml
            Response.Write("<?xml version='1.0' encoding='UTF-8'?>");   //声明xml
            Response.Write("<Northwind>");   //起始根元素
            SqlDataReader sdr = cmd.ExecuteReader();
            while (sdr.Read())
            {
                //子元素
                Response.Write("<Products>");
                Response.Write(string.Format("<productId>{0}</productId>", sdr.GetInt32(0)));
                Response.Write(string.Format("<productName>{0}</productName>", sdr.GetString(1)));
                Response.Write(string.Format("<unitprice>{0}</unitprice>", sdr.GetDecimal(2)));
                Response.Write("</Products>");
            }
            Response.Write("</Northwind>"); //终止根元素

        }
        finally
        {
            conn.Close();
        }

        Response.End(); //停止前台页面输出
    }
    protected void Page_Load(object sender, EventArgs e)
    {
        //调用
        //ylb:1,
        //WriteXml();

        //ylb:2,
        //WriteXml2();

        //ylb:3,
        WriteXml3();
    }
}
复制代码

 

5,示例|讲解案例下载

博客园讲解:

       http://ylbtech.cnblogs.com/

百度文库开发文档:

       http://passport.baidu.com/?business&aid=6&un=ylbtech#7

谷歌开源代码下载:

       http://code.google.com/p/ylbtechaspnet/downloads/list

请单击“ylbtechASPnetXml100010011”

 

本文转自ylbtech博客园博客,原文链接:http://www.cnblogs.com/ylbtech/archive/2012/08/16/2642410.html,如需转载请自行联系原作者


相关文章
|
XML 存储 C#
C#三十 Ado.net和XML
C#三十 Ado.net和XML
76 0
|
XML 存储 JSON
使用自定义XML配置文件在.NET桌面程序中保存设置
本文将详细介绍如何在.NET桌面程序中使用自定义的XML配置文件来保存和读取设置。除了XML之外,我们还将探讨其他常见的配置文件格式,如JSON、INI和YAML,以及它们的优缺点和相关的NuGet类库。最后,我们将重点介绍我们为何选择XML作为配置文件格式,并展示一个实用的示例。
179 0
|
4月前
|
开发框架 数据可视化 .NET
.NET 中管理 Web API 文档的两种方式
.NET 中管理 Web API 文档的两种方式
81 14
|
6月前
|
API C#
在.NET中使用QuestPDF高效地生成PDF文档
在.NET中使用QuestPDF高效地生成PDF文档
102 0
|
9月前
|
SQL Oracle 关系型数据库
.NET 开源快捷的数据库文档查询和生成工具
【8月更文挑战第1天】推荐几款.NET开源数据库文档工具:1. DBDocumentor,支持多类型数据库,快速生成详尽文档;2. SqlDoc,界面简洁,自定义内容与格式;3. DBInfo,强大查询功能,支持多种导出格式。这些工具有效提升文档管理效率与质量。
118 0
|
10月前
|
SQL JavaScript 安全
基于.NET开源跨平台的文档管理系统
基于.NET开源跨平台的文档管理系统
224 0
|
开发框架 前端开发 .NET
福利来袭,.NET Core开发5大案例,30w字PDF文档大放送!!!
为了便于大家查找,特将之前开发的.Net Core相关的五大案例整理成文,共计440页,32w字,免费提供给大家,文章底部有PDF下载链接。
156 1
福利来袭,.NET Core开发5大案例,30w字PDF文档大放送!!!
|
XML 开发框架 .NET
C# .NET面试系列八:ADO.NET、XML、HTTP、AJAX、WebService
## 第二部分:ADO.NET、XML、HTTP、AJAX、WebService #### 1. .NET 和 C# 有什么区别? .NET(通用语言运行时): ```c# 定义:.NET 是一个软件开发框架,提供了一个通用的运行时环境,用于在不同的编程语言中执行代码。 作用:它为多语言支持提供了一个统一的平台,允许不同的语言共享类库和其他资源。.NET 包括 Common Language Runtime (CLR)、基础类库(BCL)和其他工具。 ``` C#(C Sharp): ```c# 定义: C# 是一种由微软设计的面向对象的编程语言,专门为.NET 平台开发而创建。 作
453 2
|
XML 前端开发 定位技术
C#(NET Core3.1 MVC)生成站点地图(sitemap.xml)
C#(NET Core3.1 MVC)生成站点地图(sitemap.xml)
142 0
|
XML 数据采集 JavaScript
基于.Net开源Html解析器,此外还支持SVG、XML等格式
基于.Net开源Html解析器,此外还支持SVG、XML等格式
106 0

相关课程

更多