如何使用数据集保存到XML

时间:2010-10-17 23:06:34

标签: xml database

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

我正在使用Visual Studio 2010并使用C#.Net 4.0进行编程

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;

希望有所帮助

答案 1 :(得分: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是我使用的数据集,最好制作一个单独的按钮,以便于使用。

答案 2 :(得分:1)

您没有指定编程环境。假设您正在使用.NET ....

使用dataSet的WriteXml方法。

这里有一篇文章:http://msdn.microsoft.com/en-us/library/ms233698%28VS.80%29.aspx

答案 3 :(得分: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();