Dataset应用

using System;
using System.Drawing;
using System.Collections;
using System.ComponentModel;
using System.Windows.Forms;
using System.Data;
using System.Xml;
using System.IO;
using System.Text;

namespace datatest
{
 /// <summary>
 /// Form1 的摘要说明。
 /// </summary>
 public class Form1 : System.Windows.Forms.Form
 {
  DataSet ds = new DataSet("HJ");
  private System.Windows.Forms.DataGrid grid;
  /// <summary>
  /// 必需的设计器变量。
  /// </summary>
  private System.ComponentModel.Container components = null;

  public Form1()
  {
   //
   // Windows 窗体设计器支持所必需的
   //
   InitializeComponent();

   //
   // TODO: 在 InitializeComponent 调用后添加任何构造函数代码
   //
  }

  /// <summary>
  /// 清理所有正在使用的资源。
  /// </summary>
  protected override void Dispose( bool disposing )
  {
   if( disposing )
   {
    if (components != null)
    {
     components.Dispose();
    }
   }
   base.Dispose( disposing );
  }

  #region Windows 窗体设计器生成的代码
  /// <summary>
  /// 设计器支持所需的方法 - 不要使用代码编辑器修改
  /// 此方法的内容。
  /// </summary>
  private void InitializeComponent()
  {
   this.grid = new System.Windows.Forms.DataGrid();
   ((System.ComponentModel.ISupportInitialize)(this.grid)).BeginInit();
   this.SuspendLayout();
   //
   // grid
   //
   this.grid.DataMember = "";
   this.grid.HeaderForeColor = System.Drawing.SystemColors.ControlText;
   this.grid.Location = new System.Drawing.Point(88, 56);
   this.grid.Name = "grid";
   this.grid.Size = new System.Drawing.Size(496, 288);
   this.grid.TabIndex = 0;
   //
   // Form1
   //
   this.AutoScaleBaseSize = new System.Drawing.Size(6, 14);
   this.ClientSize = new System.Drawing.Size(928, 397);
   this.Controls.Add(this.grid);
   this.Name = "Form1";
   this.Text = "Form1";
   this.Load += new System.EventHandler(this.Form1_Load);
   ((System.ComponentModel.ISupportInitialize)(this.grid)).EndInit();
   this.ResumeLayout(false);

  }
  #endregion

  /// <summary>
  /// 应用程序的主入口点。
  /// </summary>
  [STAThread]
  static void Main()
  {
   Application.Run(new Form1());
  }

  private void DemonstrateReadWriteXMLDocumentWithXMLReader()
  {
   // Create a DataSet with one table and two columns.
   DataSet OriginalDataSet = new DataSet("myDataSet");
   OriginalDataSet.Namespace= "NetFrameWork";
   DataTable myTable = new DataTable("myTable");
   DataColumn c1 = new DataColumn("id", Type.GetType("System.Int32"));
   c1.AutoIncrement= true;
   DataColumn c2 = new DataColumn("item");
   myTable.Columns.Add(c1);
   myTable.Columns.Add(c2);
   OriginalDataSet.Tables.Add(myTable);
   // Add ten rows.
   DataRow newRow;
   for(int i = 0; i < 10; i++)
   {
    newRow = myTable.NewRow();
    newRow["item"]= "item " + i;
    myTable.Rows.Add(newRow);
   }
   OriginalDataSet.AcceptChanges();
   // Print out values of each table in the DataSet using the
   // function defined below.
   PrintValues(OriginalDataSet, "Original DataSet");
   // Write the XML schema and data to file with FileStream.
   string xmlFilename = "myXmlDocument.xml";
   // Create FileStream   
   System.IO.FileStream fsWriteXml = new System.IO.FileStream
    (xmlFilename, System.IO.FileMode.Create);
   // Create an XmlTextWriter to write the file.
   System.Xml.XmlTextWriter xmlWriter = new System.Xml.XmlTextWriter
    (fsWriteXml, System.Text.Encoding.Unicode);
   // Use WriteXml to write the document.
   OriginalDataSet.WriteXml(xmlWriter);
   // Close the FileStream.
   fsWriteXml.Close();
     
   // Dispose of the original DataSet.
   OriginalDataSet.Dispose();
   // Create a new DataSet.
   DataSet newDataSet = new DataSet("New DataSet");
     
   // Read the XML document back in.
   // Create new FileStream to read schema with.
   System.IO.FileStream fsReadXml = new System.IO.FileStream
    (xmlFilename, System.IO.FileMode.Open);
   // Create an XmlTextReader to read the file.
   System.Xml.XmlTextReader myXmlReader =
    new System.Xml.XmlTextReader(fsReadXml);
   // Read the XML document into the DataSet.
   newDataSet.ReadXml(myXmlReader);
   // Close the XmlTextReader
   myXmlReader.Close();

   // Print out values of each table in the DataSet using the
   // function defined below.
   PrintValues(newDataSet,"New DataSet");
  }

  private void PrintValues(DataSet ds, string label)
  {
   Console.WriteLine("/n" + label);
   foreach(DataTable t in ds.Tables)
   {
    Console.WriteLine("TableName: " + t.TableName);
    foreach(DataRow r in t.Rows)
    {
     foreach(DataColumn c in t.Columns)
     {
      Console.Write("/t " + r[c] );
     }
     Console.WriteLine();
    }
   }
  }

  public void test()
  {
   DataSet ppvSet = new DataSet("ppvprodRsp");
   DataTable list = new DataTable("ppvProdList");
   list.Columns.Add("ContentCode", typeof(string));
   list.Columns.Add("ContentType", typeof(string));
   list.Columns.Add("Price", typeof(int));
   list.Columns.Add("OrderTime", typeof(int));
   ppvSet.Tables.Add(list);


   DataTable info = new DataTable("ppvprodinfo");
   info.Columns.Add("Result", typeof(int));
   info.Columns.Add("UserID", typeof(string));
   ppvSet.Tables.Add(info);

   DataRow content1 = list.NewRow();
   content1["ContentCode"]="222";
   content1["Price"]=50;
   list.Rows.Add(content1);
   
   DataRow res = info.NewRow();
   res["Result"]=0;
   res["UserId"]="jassen";
   info.Rows.Add(res);

   string xmlFilename = "output.xml";
   System.IO.FileStream fsWriteXml = new System.IO.FileStream
    (xmlFilename, System.IO.FileMode.Create);

   System.Xml.XmlTextWriter xmlWriter = new System.Xml.XmlTextWriter
    (fsWriteXml, System.Text.Encoding.Unicode);

   ppvSet.WriteXml(xmlWriter);
   fsWriteXml.Close();

   //string xmlFilename = "MfData.xml";
   DataSet newDataSet = new DataSet("New DataSet");
     
   // Read the XML document back in.
   // Create new FileStream to read schema with.
   System.IO.FileStream fsReadXml = new System.IO.FileStream
    (xmlFilename, System.IO.FileMode.Open);
   // Create an XmlTextReader to read the file.
   System.Xml.XmlTextReader myXmlReader =
    new System.Xml.XmlTextReader(fsReadXml);
   // Read the XML document into the DataSet.
   newDataSet.ReadXml(myXmlReader);
   // Close the XmlTextReader
   PrintSet(newDataSet);
   myXmlReader.Close();
   fsReadXml.Close();
   

  }

  void PrintSet(DataSet set)
  {
   foreach(DataTable table in set.Tables)
   {
    Console.WriteLine(table.TableName);
    foreach(DataRow row in table.Rows)
    {
     foreach(DataColumn column in table.Columns)
     {
      Console.WriteLine(column.ColumnName+":"+row[column]);

     }
     Console.WriteLine("____________________________________");
    }
   
   }
  }

  void ReadXml()
  {
   string fileName = "xMfData.xml";
   FileStream fsReadXml = new FileStream(fileName,FileMode.Open);
   XmlTextReader myXmlReader = new XmlTextReader(fsReadXml);  
  
   ds.ReadXml(myXmlReader);
   DataTable taskTable = ds.Tables["Task"];

   ds.Tables["Task"].Columns.Add("黄巾代号",typeof(int),"Convert(Text,'System.Int32')");
   //ds.Tables["Task"].Columns.Remove("Text");
   //ds.Tables["Task"].Columns.Add("xText",typeof(int),"Node.");
   //ds.Relations.Add(new DataRelation("relation", "Task.Node_Id", "Node.Name", false));
   ds.Tables["Task"].Columns.Add("武将", typeof(string),"Parent.Name");
 
   PrintSet(ds);
   myXmlReader.Close();
   fsReadXml.Close();
  }
  void LoadXml()
  {
   XmlDocument doc = new XmlDocument();
   XmlDocument xdoc = new XmlDocument();
   string fileName = "xMfData.xml";
   xdoc.AppendChild(xdoc.CreateNode(XmlNodeType.XmlDeclaration , "" , "" )) ;
   XmlNode xroot = xdoc.AppendChild(xdoc.CreateElement("Root"));

   doc.Load("MfData.xml");
   XmlNode root= doc.SelectSingleNode("Root");
   //XmlNode root = doc.DocumentElement["Root"];
   XmlNode rootchild = root["Children"];
   if(rootchild==null)
    return;
   foreach(XmlNode node in rootchild.ChildNodes)
   {
    string name = node.Attributes["Name"].Value;
    
    XmlElement xnode=xdoc.CreateElement("Node");
    xnode.SetAttribute("Name", name);

    XmlNode keys = node["Keys"];
    foreach(XmlNode key in keys.ChildNodes)
    {
     xnode.SetAttribute(key.Attributes["Name"].Value,key.InnerText);
    }
    XmlNode tasks = node["Children"]["Node"]["Children"];
    foreach(XmlNode task in tasks.ChildNodes)
    {
     XmlElement xtask = xdoc.CreateElement("Task");
     xtask.SetAttribute("Name", task.Attributes["Name"].Value);
     xtask.SetAttribute("Text", task.Attributes["Text"].Value);

     XmlNode soldiers = task["Children"]["Node"]["Keys"];
     foreach(XmlNode soldier in soldiers)
     {
      int num = Convert.ToInt16(soldier.InnerText);
      if(num>0)
      {
       //XmlElement xsoldier= xdoc.CreateElement("Soldier");   
       xtask.SetAttribute("Soldier"+soldier.Attributes["Name"].Value, soldier.InnerText);
      }
     }


     xnode.AppendChild(xtask);
    }
    //Console.WriteLine(name);
    xroot.AppendChild(xnode);

   }
   xdoc.Save(fileName);
   StreamReader reader = new StreamReader(fileName);
   string line="";
   while(line !=null)
   {
    line = reader.ReadLine();
    Console.WriteLine(line);
   }

   reader.Close();


  }

  void getView()
  {
   DataTable orders = ds.Tables["Task"];
//   EnumerableRowCollection<DataRow> query =
//    from order in orders.AsEnumerable()
//    where order.Field<bool>("OnlineOrderFlag") == true
//    orderby order.Field<decimal>("TotalDue")
//    select order;

   //DataView view = query.AsDataView();


  }
  private void Form1_Load(object sender, System.EventArgs e)
  {
   try
   {
    LoadXml();
    ReadXml();
    DataView view =  ds.Tables["Task"].DefaultView;
    //view. = "武将,黄巾代号,Soldier11";
    this.grid.DataSource =view;
    //grid.DataBindings
    //tree.DataBindings.Add(new Binding("Text", ds, "Node.Name"));
    
   }
   catch(Exception ex)
   {
    Console.WriteLine(ex.StackTrace);
   }

  }
 }
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: C#中的DataSetDataTable是非常常用的数据存储和处理工具,下面是一些应用实例: 1. 数据库查询结果存储 在C#中,我们可以使用DataSetDataTable来存储数据库查询结果。例如,我们可以使用DataAdapter类从数据库中检索数据,并将结果存储在DataTable中。然后,我们可以使用DataTable的方法和属性来处理和操作这些数据。 2. 数据导入和导出 DataSetDataTable也可以用于数据导入和导出。例如,我们可以使用DataTable的WriteXml方法将数据保存为XML文件,然后使用ReadXml方法将数据加载回DataTable中。同样,我们也可以使用DataSet的WriteXml和ReadXml方法来导入和导出数据。 3. 数据筛选和排序 使用DataTable的Select方法可以筛选出符合条件的数据行,而使用DataTable的Sort方法可以对数据进行排序。这些方法可以帮助我们快速地处理和分析数据。 4. 数据绑定 DataSetDataTable也可以用于数据绑定。例如,我们可以使用DataGrid控件将DataTable中的数据绑定到一个表格中,然后可以对表格进行排序、筛选和编辑操作。 总之,DataSetDataTable是C#中非常有用的数据存储和处理工具,可以帮助我们快速地处理和分析数据。 ### 回答2: 很抱歉,我需要更多的上下文信息才能回答您提出的问题。请提供更多的信息。 ### 回答3: 抱歉,您的问题中似乎缺少了一部分内容,无法理解您想要询问的具体问题。请您提供更详细的问题或背景信息,我将尽力为您提供准确的答案和帮助。谢谢!

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值