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(); } } }
在C#中怎样读写XML文件到DataGrid上去 我想在C#的Windows窗体中用菜单写XML和读出XML应该怎么做。就是 我首先写个XML文件后可以在窗体的DataGrid中读出XML但不能在上面添加 新的记录,并且要求新的记录能够保存在XML文件中。下面是读XML文件的 代码,写进去的代码我不知怎么写。 //创建DataSet对象 DataSet myDataSet = new DataSet(); //加载XML数据 myDataSet.ReadXml(@"..\Employee.xml"); // [把(ReadXML改写成WriteXml不能成功)] //将数据集邦定到数据网格 dataGrid1.DataSource = myDataSet; dataGrid1.SetDataBinding(myDataSet,"Employee" ); 是不是要用到XSD模式。 也就是怎样用DataGrid建一个动态的数据表。 装在xml到DataSetusing System; using System.Data; using System.Collections; using System.Xml; using System.IO; using System.Text;namespace ConsoleTest { /// <summary> /// ZZConsole 的摘要说明。 /// </summary> public class ZZConsole { [STAThread] static void Main(string[] args) {
XmlDocument xdoc= new XmlDocument(); xdoc.Load(@"d:\test.xml"); DataSet ds = CreatDataSet(); XmlNodeList xList = xdoc.SelectNodes("//Item"); foreach(XmlNode xNode in xList) { DataRow dr = ds.Tables["Items"].NewRow(); dr["Item"] = xNode.Attributes["Name"].Value; ds.Tables["Items"].Rows.Add(dr); } foreach(DataRow dr in ds.Tables["Items"].Rows) { Console.WriteLine(dr["Item"].ToString()); } Console.ReadLine(); } public static DataSet CreatDataSet() { DataSet ds = new DataSet(); DataTable dt = new DataTable("Items"); DataColumn dc = new DataColumn("Item",typeof(string)); dt.Columns.Add(dc); ds.Tables.Add(dt); return ds; } } } ======================================================= <?xml version="1.0" encoding="utf-8" ?> <Root> <Class Name="1"> <Item Name="Item11"/> <Item Name="Item12"/> <Item Name="Item13"/> <Item Name="Item14"/> </Class> <Class Name="2"> <Item Name="Item21"/> <Item Name="Item22"/> <Item Name="Item23"/> <Item Name="Item24"/> </Class> </Root>DataGrid绑定DataSet就可以显示数据了。
// 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();
}
}
}
我想在C#的Windows窗体中用菜单写XML和读出XML应该怎么做。就是
我首先写个XML文件后可以在窗体的DataGrid中读出XML但不能在上面添加
新的记录,并且要求新的记录能够保存在XML文件中。下面是读XML文件的
代码,写进去的代码我不知怎么写。
//创建DataSet对象
DataSet myDataSet = new DataSet(); //加载XML数据
myDataSet.ReadXml(@"..\Employee.xml");
// [把(ReadXML改写成WriteXml不能成功)] //将数据集邦定到数据网格
dataGrid1.DataSource = myDataSet;
dataGrid1.SetDataBinding(myDataSet,"Employee" );
是不是要用到XSD模式。
也就是怎样用DataGrid建一个动态的数据表。
装在xml到DataSetusing System;
using System.Data;
using System.Collections;
using System.Xml;
using System.IO;
using System.Text;namespace ConsoleTest
{
/// <summary>
/// ZZConsole 的摘要说明。
/// </summary>
public class ZZConsole
{
[STAThread]
static void Main(string[] args)
{
XmlDocument xdoc= new XmlDocument();
xdoc.Load(@"d:\test.xml");
DataSet ds = CreatDataSet();
XmlNodeList xList = xdoc.SelectNodes("//Item");
foreach(XmlNode xNode in xList)
{
DataRow dr = ds.Tables["Items"].NewRow();
dr["Item"] = xNode.Attributes["Name"].Value;
ds.Tables["Items"].Rows.Add(dr);
}
foreach(DataRow dr in ds.Tables["Items"].Rows)
{
Console.WriteLine(dr["Item"].ToString());
}
Console.ReadLine();
}
public static DataSet CreatDataSet()
{
DataSet ds = new DataSet();
DataTable dt = new DataTable("Items");
DataColumn dc = new DataColumn("Item",typeof(string));
dt.Columns.Add(dc);
ds.Tables.Add(dt);
return ds;
}
}
}
=======================================================
<?xml version="1.0" encoding="utf-8" ?>
<Root>
<Class Name="1">
<Item Name="Item11"/>
<Item Name="Item12"/>
<Item Name="Item13"/>
<Item Name="Item14"/>
</Class>
<Class Name="2">
<Item Name="Item21"/>
<Item Name="Item22"/>
<Item Name="Item23"/>
<Item Name="Item24"/>
</Class>
</Root>DataGrid绑定DataSet就可以显示数据了。