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);
}
}
}
}