2010-10-17 39 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是我使用的數據集和一個單獨的按鈕使其易於使用是一個好主意。