ASP.NET Tutorial/XML/DataSet

Материал из .Net Framework эксперт
Перейти к: навигация, поиск

DataSet to XML

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="DataSetToXml" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
    <title>Untitled Page</title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
        <asp:Xml ID="XmlControl" runat="server"></asp:Xml>
    
    </div>
    </form>
</body>
</html>
File: Default.aspx.cs
using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Data.SqlClient;
using System.Xml;
using System.Web.Configuration;
public partial class DataSetToXml : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
    string connectionString = WebConfigurationManager.ConnectionStrings["Pubs"].ConnectionString;
    string SQL = "SELECT * FROM authors WHERE city="Oakland"";
    SqlConnection con = new SqlConnection(connectionString);
    SqlCommand cmd = new SqlCommand(SQL, con);
    SqlDataAdapter adapter = new SqlDataAdapter(cmd);
    DataSet ds = new DataSet("AuthorsDataSet");
    con.Open();
    adapter.Fill(ds, "AuthorsTable");
    con.Close();
    XmlDataDocument dataDoc = new XmlDataDocument(ds);
    XmlControl.Document = dataDoc;
    XmlControl.TransformSource = "authors.xslt";
    }
}
File: Web.config
<?xml version="1.0"?>
<configuration xmlns="http://schemas.microsoft.ru/.NetConfiguration/v2.0">
  <appSettings/>
  <connectionStrings>
    <add name="Pubs" connectionString="Data Source=localhost;Initial Catalog=pubs;Integrated Security=SSPI"/>
  </connectionStrings>
  <system.web>
    <compilation debug="true"/>
    <authentication mode="Windows"/>
  </system.web>
</configuration>
File: authors.xslt
<?xml version="1.0" encoding="UTF-8" ?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
                version="1.0">
<xsl:template match="AuthorsDataSet">
   <h1>The Author List</h1>
  
      <xsl:apply-templates select="AuthorsTable"/>
 
   <i>Created through XML and XSLT</i>
</xsl:template>
<xsl:template match="AuthorsTable">
<b>Name: </b><xsl:value-of select="au_lname"/>, <xsl:value-of select="au_fname"/>
<br/>
<b>Phone: </b> <xsl:value-of select="phone"/>
</xsl:template>
</xsl:stylesheet>


Read XML file and feed into DataSet

<%@ Import namespace="System.Data" %>
<html>
  <head>
    <title>Read XML file</title>
  </head>
  <body>
    <H2>Read XML file</H2>
      <asp:Label id="lblXMLFileName" runat="server" /><BR/><BR/>
      <asp:DataGrid id="dgServers" runat="server" />
  </body>
</html>
<script language="VB" runat="server">
Sub Page_Load(Source As Object, E As EventArgs)
  Dim strXMLFile As String = Server.MapPath("Data.xml")
  lblXMLFileName.Text = strXMLFile
  Dim objDataSet As New DataSet()
  objDataSet.ReadXml(strXMLFile)
  dgServers.DataSource = objDataSet.Tables(0).DefaultView
  dgServers.DataBind()
End Sub
</script>
File: ~\Data.xml
<?xml version="1.0" standalone="yes"?>
<CarList>
  <Car>
    <ModelName>A</ModelName>
    <Doors>2</Doors>
    <ColorList>
      <Color>A</Color>
      <Color>B</Color>
      <Color>C</Color>
    </ColorList>
  </Car>
  <Car>
    <ModelName>B</ModelName>
    <Doors>3</Doors>
    <ColorList>
      <Color>D</Color>
      <Color>E</Color>
      <Color>F</Color>
    </ColorList>
  </Car>
</CarList>