[英]“Multiple” XML-File (new input should not replace) using c#
我正在寫一個簡短的程序,向我顯示我所有的待辦事項。 我有兩個標簽。 1選項卡用於創建新待辦事項,另一個選項卡用於顯示每個待辦選項的詳細信息。 所以我必須將創建的待辦事項保存在xml文件中。 為此,我使用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中創建一個新的“待辦事項”,它將替換.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.