";多个“;使用c#的XML文件(不应替换新输入)

本文关键字:替换 输入 新输入 XML 多个 quot 使用 文件 | 更新日期: 2023-09-27 18:30:03

我正在写一个简短的程序,它显示了我所有的待办事项。我有两个标签。1个选项卡用于创建新的待办事项,另一个选项卡用于显示我选择的每个待办事项的详细信息。因此,我必须将创建的待办事项保存在一个xml文件中。为此,我使用了DataTableDataSet,它运行良好。这是我的代码:

DataTable datatable = new DataTable();
            datatable.TableName = "SaveInput";
            DataColumn dc1 = new DataColumn("Name");
            DataColumn dc2 = new DataColumn("Priority");
            DataColumn dc3 = new DataColumn("StartDate");
            DataColumn dc4 = new DataColumn("EndDateSoll");
            DataColumn dc5 = new DataColumn("EndDateIst");
            DataColumn dc6 = new DataColumn("Comment");
            datatable.Columns.Add(dc1);
            datatable.Columns.Add(dc2);
            datatable.Columns.Add(dc3);
            datatable.Columns.Add(dc4);
            datatable.Columns.Add(dc5);
            datatable.Columns.Add(dc6);
            datatable.Rows.Add(txt_Name.Text, combox_Priority.Text, txt_Beginn.Text, txt_EndSoll.Text, txt_EndIst.Text, txt_Bemerkungen.Text);
            DataSet dataset = new DataSet();
            dataset.Tables.Add(datatable);
            dataset.DataSetName = "MyProgram";
            dataset.WriteXml(@"C:'Users'rs'Desktop'Test'save.xml");

但我现在的问题是:如果我在tab1中创建了一个新的"To Do",它就会替换.xml文件中的新"To To Do"。因此,如果我查看.xml文件,仍然有1个"待办事项"。我只想在.xml文件中写更多的表。所以我的.xml文件看起来像这样:

<MyProgram>
  <SaveInput>
    <Name>todo1</Name>
    <Priority>high</Priority>
    <StartDate>today</StartDate>
    <EndDateSoll>later</EndDateSoll>
    <EndDateIst>not finished</EndDateIst>
    <Comment>blabla</Comment>
  </SaveInput>
</MyProgram>

但它应该看起来像这样,例如:

<MyProgram>
  <SaveInput>
    <Name>todo1</Name>
    <Priority>high</Priority>
    <StartDate>today</StartDate>
    <EndDateSoll>later</EndDateSoll>
    <EndDateIst>not finished</EndDateIst>
    <Comment>blabla</Comment>
    <Name>todo2</Name>
    <Priority>high</Priority>
    <StartDate>yesterday</StartDate>
    <EndDateSoll>tomorrow</EndDateSoll>
    <EndDateIst>not finished</EndDateIst>
    <Comment>testtest</Comment>
  </SaveInput>
</MyProgram>

我希望有人能帮助我或给我一个提示,这样我就可以创建多个待办事项。

干杯

编辑:这是一个WinForm应用程序

";多个“;使用c#的XML文件(不应替换新输入)

此代码应该适用于您。

看看

DataSet ds = new DataSet();
            if (File.Exists(@"C:'Users'rs'Desktop'Test'save.xml"))
            {
                ds.ReadXml(@"C:'Users'rs'Desktop'Test'save.xml");
                ds.Tables[0].Rows.Add(txt_Name.Text, combox_Priority.Text, txt_Beginn.Text, txt_EndSoll.Text, txt_EndIst.Text, txt_Bemerkungen.Text);
                ds.WriteXml(@"C:'Users'rs'Desktop'Test'save.xml");
            }
            else
            {
                DataTable datatable = new DataTable();
                datatable.TableName = "SaveInput";
                DataColumn dc1 = new DataColumn("Name");
                DataColumn dc2 = new DataColumn("Priority");
                DataColumn dc3 = new DataColumn("StartDate");
                DataColumn dc4 = new DataColumn("EndDateSoll");
                DataColumn dc5 = new DataColumn("EndDateIst");
                DataColumn dc6 = new DataColumn("Comment");
                datatable.Columns.Add(dc1);
                datatable.Columns.Add(dc2);
                datatable.Columns.Add(dc3);
                datatable.Columns.Add(dc4);
                datatable.Columns.Add(dc5);
                datatable.Columns.Add(dc6);
                datatable.Rows.Add(txt_Name.Text, combox_Priority.Text, txt_Beginn.Text, txt_EndSoll.Text, txt_EndIst.Text, txt_Bemerkungen.Text);
                DataSet dataset = new DataSet();
                dataset.Tables.Add(datatable);
                dataset.DataSetName = "MyProgram";
                dataset.WriteXml(@"C:'Users'rs'Desktop'Test'save.xml");
            }

如果我错了,请纠正我,但从你的代码来看,你似乎总是创建一个新的数据集,其中只包含新的值。你会先阅读已经存在的Todos吗?如果没有,您只需始终覆盖xml文件和以前的条目。