2010-10-17 41 views
2

我正在使用sql数据库来保存简单的笔记应用程序的数据,使用数据集和GUI绑定数据库。简单的工作。 在这里使用SQL是没用的,我想用相同的数据集将数据保存到一个简单的XML文件而不是SQL中。如何使用数据集保存到XML

我使用Visual Studio 2010和编程在C#.NET 4.0

回答

3

单个表的数据集,以XML

private void SingleTableToXml() 
{ 
    DataSet myDS = getDataSet(); 

    // To write out the contents of the DataSet as XML, 
    // use a file name to call the WriteXml method of the DataSet class 
    myDS.WriteXml(Server.MapPath("filename.xml"), XmlWriteMode.IgnoreSchema); 
} 

如果数据集中有一个以上的表,说这一个主从关系,那么,方法是完全一样的。只要确保创建表之间的DataRelation和Nested属性设置的关系为true如下面的代码

//Get the primary key column from the master table 
DataColumn primarykey = myDS.Tables["Categories"].Columns["CategoryID"]; 
//Get the foreign key column from the detail table 
DataColumn foreignkey = myDS.Tables["Products"].Columns["CategoryID"]; 

//Assign a relation 
DataRelation relation = myDS.Relations.Add(primarykey, foreignkey); 

//Ask ADO.NET to generate nested XML nodes 
relation.Nested = true; 

希望它可以帮助

+0

好吧,写入XML我下次如何加载?的ReadXml? – SMUsamaShah 2010-10-19 22:23:24

+0

这就是工作。谢谢! – SMUsamaShah 2010-10-19 22:25:53

+0

是的。 ReadXml是你的方式。您可以在[MSDN参考页面](http://bit.ly/a53DOL)上找到每个覆盖的示例。祝你好运! – Lorenzo 2010-10-19 23:30:43

1

下面是从数据集生成XML的好例子

DataSet ds = new DataSet(); 
    DataTable dt = new DataTable(); 
    DataColumn dc; 
    DataRow dr; 
    ds.DataSetName = "products"; 
    dt.TableName = "product"; 

    dc = new DataColumn("product_id"); 
    dt.Columns.Add(dc); 

    dc = new DataColumn("product_name"); 
    dt.Columns.Add(dc); 

    dr = dt.NewRow(); 
    dr["product_id"] = 1; 
    dr["product_name"] = "Monitor"; 
    dt.Rows.Add(dr); 

    dr = dt.NewRow(); 
    dr["product_id"] = 2; 
    dr["product_name"] = "Mouse"; 
    dt.Rows.Add(dr); 

    dr = dt.NewRow(); 
    dr["product_id"] = 3; 
    dr["product_name"] = "KeyBoard"; 
    dt.Rows.Add(dr); 

    ds.Tables.Add(dt); 
    string strXML= ds.GetXml(); 

    System.IO.StreamWriter sw = new System.IO.StreamWriter(Server.MapPath("datasetxml.xml")); 
    sw.WriteLine(strXML); 
    sw.Close(); 
2

我用的是:

 private void buttonSaveXML_Click(object sender, EventArgs e) 
    { 
     SaveFileDialog saveFile = new SaveFileDialog(); 
     saveFile.Filter = "XML Files|*.xml"; 
     saveFile.Title = "Save a Xml File"; 
     saveFile.ShowDialog(); 
     if (saveFile.FileName != "") 
     { 
      FileStream fs = 
       (FileStream)saveFile.OpenFile(); 
      DataSet.WriteXml(fs); 
     } 
    { 

DataSet是我使用的数据集和一个单独的按钮使其易于使用是一个好主意。