簡體   English   中英

使用c#“多個”XML文件(新輸入不應替換)

[英]“Multiple” XML-File (new input should not replace) using c#

我正在寫一個簡短的程序,向我顯示我所有的待辦事項。 我有兩個標簽。 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中創建一個新的“待辦事項”,它將替換.xml文件中的新“待辦事項”。 因此,如果我查看.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>

我希望有人可以幫助我或給我一個提示,這樣我就可以創造超過1個待辦事項。

干杯

編輯:這是一個WinForm應用程序

此代碼應該適合您。

看看這個

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文件和之前的條目。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM