Csharp/CSharp Tutorial/XML/Xml DataSet

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

Create Data with DataSet and DataRow and save to xml

<source lang="csharp">using System; using System.Data; public enum DiscountType {

 Percentage,
 Fixed

} public class CreateData {

 public static void Main(string [] args) {
   DataSet dataSet = new DataSet();
   dataSet.ReadXmlSchema("Coupons.xsd");
   
   DataTable couponsTable = dataSet.Tables["coupons"];
   
   DataRow couponRow = couponsTable.NewRow();
   couponRow["mycode"] = "763FF";
   couponRow["amount"] = 0.5;
   couponRow["mytype"] = DiscountType.Fixed;
   couponRow["my_date"] = new DateTime(2002,12,31);
   couponsTable.Rows.Add(couponRow);
   
   dataSet.WriteXml("Coupons.xml");
 }

}</source>

Fill DataSet with the data from XML

<source lang="csharp">using System; using System.Xml; using System.Xml.Xsl; using System.Xml.XPath; using System.Data.rumon; using System.Data; class MainClass {

 static void Main(string[] args)
 {
   DataSet ds = new DataSet();
   
   ds.ReadXml(@"c:\Sample.xml ");
 }

}</source>

Load XML to DataSet

<source lang="csharp">using System; using System.Drawing; using System.Collections; using System.ruponentModel; using System.Windows.Forms; using System.Data; using System.Data.OleDb; using System.Xml; public class LoadXMLDataSet : System.Windows.Forms.Form {

 private DataGrid dataGrid1= new DataGrid();
 public LoadXMLDataSet()
 {
   this.dataGrid1.DataMember = "";
   this.dataGrid1.Location = new System.Drawing.Point(8, 16);
   this.dataGrid1.Size = new System.Drawing.Size(264, 232);
   this.AutoScaleBaseSize = new System.Drawing.Size(5, 13);
   this.ClientSize = new System.Drawing.Size(292, 273);
   this.Controls.AddRange(new System.Windows.Forms.Control[] {this.dataGrid1});
          
   XmlDataDocument xmlDatadoc = new XmlDataDocument();
   xmlDatadoc.DataSet.ReadXml("C:\\books.xml");
   DataSet ds = new DataSet("Books DataSet");
   ds = xmlDatadoc.DataSet;
   dataGrid1.DataSource = ds.DefaultViewManager; 
 }
 static void Main() 
 {
   Application.Run(new LoadXMLDataSet());
 }

}</source>

Output DataSet to Xml

<source lang="csharp">using System; using System.Collections.Generic; using System.Text; using System.Data; using System.IO; using System.Runtime.Serialization.Formatters.Binary;

 class Program
 {
   static void Main(string[] args)
   {
     DataSet carsInventoryDS = new DataSet("Car");
     carsInventoryDS.ExtendedProperties["TimeStamp"] = DateTime.Now;
     carsInventoryDS.ExtendedProperties["DataSetID"] = Guid.NewGuid();
     carsInventoryDS.ExtendedProperties["Company"] = "Training";
     DataColumn carIDColumn = new DataColumn("CarID", typeof(int));
     carIDColumn.Caption = "Car ID";
     carIDColumn.ReadOnly = true;
     carIDColumn.AllowDBNull = false;
     carIDColumn.Unique = true;
     carIDColumn.AutoIncrement = true;
     carIDColumn.AutoIncrementSeed = 0;
     carIDColumn.AutoIncrementStep = 1;
     DataColumn carMakeColumn = new DataColumn("Make", typeof(string));
     DataColumn carColorColumn = new DataColumn("Color", typeof(string));
     DataColumn carPetNameColumn = new DataColumn("PetName", typeof(string));
     carPetNameColumn.Caption = "Pet Name";
     DataTable inventoryTable = new DataTable("Inventory");
     inventoryTable.Columns.AddRange(new DataColumn[] { carIDColumn, carMakeColumn, carColorColumn, carPetNameColumn });
     DataRow carRow = inventoryTable.NewRow();
     carRow["Make"] = "BMW";
     carRow["Color"] = "Black";
     carRow["PetName"] = "Hamlet";
     inventoryTable.Rows.Add(carRow);
     carRow = inventoryTable.NewRow();
     carRow[1] = "A";
     carRow[2] = "B";
     carRow[3] = "C";
     inventoryTable.Rows.Add(carRow);
     inventoryTable.PrimaryKey = new DataColumn[] { inventoryTable.Columns[0] };
     carsInventoryDS.Tables.Add(inventoryTable);
     
     // Save this DataSet as XML.
     carsInventoryDS.WriteXml("carsDataSet.xml");
     carsInventoryDS.WriteXmlSchema("carsDataSet.xsd");
     // Clear out DataSet.
     carsInventoryDS.Clear();
     // Load DataSet from XML file.
     carsInventoryDS.ReadXml("carsDataSet.xml");
     
   }
 }</source>

Reading XML with DataSet

<source lang="csharp">using System; using System.Data; using System.Collections.Generic; using System.Text;

 class Program
 {
   static void Main(string[] args)
   {
     DataSet thisDataSet = new DataSet();
     thisDataSet.ReadXml("nwinddata.xml");
     foreach (DataRow custRow in thisDataSet.Tables["Customers"].Rows)
     {
       Console.WriteLine("Customer ID: " + custRow["CustomerID"] +
                 " Name: " + custRow["CompanyName"]);
     }
     Console.WriteLine("Table created by ReadXml is called {0}",
                thisDataSet.Tables[0].TableName);
   }
 }</source>

Save data in a DataSet to xml document

<source lang="csharp">using System; using System.IO; using System.Xml; using System.Data; class MainClass {

 public static void Main()
 {
   DataSet ds = new DataSet("DS");
   ds.Namespace = "StdNamespace";
   DataTable stdTable = new DataTable("Student");
   DataColumn col1 = new DataColumn("Name");
   DataColumn col2 = new DataColumn("Address");
   stdTable.Columns.Add(col1);
   stdTable.Columns.Add(col2);
   ds.Tables.Add(stdTable);
   DataRow newRow;newRow = stdTable.NewRow();
   newRow["Name"]= "M C";
   newRow["Address"]= "address 1";
   stdTable.Rows.Add(newRow);
   newRow = stdTable.NewRow();
   newRow["Name"]= "M G";
   newRow["Address"]= "address1";
   stdTable.Rows.Add(newRow);
   ds.AcceptChanges();
   StreamWriter myStreamWriter = new StreamWriter(@"c:\stdData.xml");
   ds.WriteXml(myStreamWriter);
   myStreamWriter.Close();
 }

}</source>