0

すべての To Do を表示する短いプログラムを作成しています。私は2つのタブを持っています。1 つのタブは新しい To Do を作成するためのもので、もう 1 つのタブは選択したすべての To Do の詳細を表示するためのものです。そのため、作成した To Do を xml ファイルに保存する必要があります。このために私は and を使用DataTableしていますがDataSet、正常に動作します。ここに私のコード:

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 Do」が置き換えられます。そのため、.xml ファイルを見ると、まだ「To Do」が 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>

複数のTo-Doを作成できるように、誰かが私を助けたり、ヒントをくれたりしてくれることを願っています。

乾杯

編集:これはWinFormアプリケーションです

4

2 に答える 2

2

このコードはあなたのために働くはずです。

見てみな

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");
            }
于 2013-09-04T07:50:52.827 に答える