Добавление данных в XML файл с несколькими родительскими элементами - C#
Формулировка задачи:
Есть xml файл
Не получается сделать добавление по категориям private, job, everydae. Добавляется только для private.
Знаю что нужно прописать условия для выбранного comboBox4.SelectedIndex не выходит MyDataSet.Tables[0] присвоить MyDataSet.Tables["название нужной категории"]
Листинг программы
- <?xml version="1.0" encoding="windows-1251" standalone="yes"?>
- <NewDataSet>
- <private>
- <id>1</id>
- <category>Личное</category>
- <text>turtuty</text>
- <data>7 декабря 2015 г.</data>
- <importance>Важно</importance>
- <state>Не выполняется</state>
- </private>
- <private>
- <id>2</id>
- <category>Личное</category>
- <text>yyyyyyyyyyyyyyyyyy</text>
- <data>7 декабря 2015 г.</data>
- <importance>Важно</importance>
- <state>Не выполняется</state>
- </private>
- <private>
- <id>3</id>
- <category>Личное</category>
- <text>yyyyyyyyyyyyyyiiiiiiiiiiiiiiiiiiiiiiiii</text>
- <data>7 декабря 2015 г.</data>
- <importance>Не важно</importance>
- <state>В процессе</state>
- </private>
- <everyday>
- <id>4</id>
- <category>Повседневное</category>
- <text>turtuty</text>
- <data>7 декабря 2015 г.</data>
- <importance>Важно</importance>
- <state>Не выполняется</state>
- </everyday>
- <job>
- <id>5</id>
- <category>Работа</category>
- <text>turtuty</text>
- <data>7 декабря 2015 г.</data>
- <importance>Важно</importance>
- <state>Не выполняется</state>
- </job>
- </NewDataSet>
Листинг программы
- DataRow[] datarows = null;
- string s = string.Empty;
- try
- {
- datarows = MyDatatable.Select("id=max(id)");
- s = datarows[0]["id"].ToString();
- }
- catch (Exception)
- {
- }
- if (s == "" || s == string.Empty)
- {
- s = "0";
- }
- int i = int.Parse(s) + 1;
- DataRow datarow = MyDataSet.Tables[0].NewRow();
- datarow[0] = Convert.ToString(i);
- datarow[1] = comboBox4.Text.Trim();
- datarow[2] = textBox1.Text.Trim();
- datarow[3] = dateTimePicker1.Text.Trim();
- datarow[4] = comboBox1.Text.Trim();
- datarow[5] = comboBox2.Text.Trim();
- MyDataSet.Tables[0].Rows.Add(datarow);
- xmldoc = new XmlDocument();
- xmldoc.InnerXml = MyDataSet.GetXml();
- XmlDeclaration xmldeclaration = xmldoc.CreateXmlDeclaration("1.0", "windows-1251", "yes");
- xmldoc.InsertBefore(xmldeclaration, xmldoc.DocumentElement);
- xmldoc.Save(sCurDir + @"\XMLFile1.xml");
- MyDataSet = new DataSet();
- MyDataSet.ReadXml(sCurDir + @"\XMLFile1.xml", XmlReadMode.Auto);
- MyDatatable = MyDataSet.Tables[0];
Попыталась так результата 0
Листинг программы
- void job (int i)
- {
- MyDatatable = MyDataSet.Tables["job"];
- DataRow datarow = MyDataSet.Tables["job"].NewRow();
- datarow[0] = Convert.ToString(i);
- datarow[1] = comboBox4.Text.Trim();
- datarow[2] = textBox1.Text.Trim();
- datarow[3] = dateTimePicker1.Text.Trim();
- datarow[4] = comboBox1.Text.Trim();
- datarow[5] = comboBox2.Text.Trim();
- MyDataSet.Tables["job"].Rows.Add(datarow);
- }
- void everyday (int i)
- {
- MyDatatable = MyDataSet.Tables["everyday"];
- DataRow datarow = MyDataSet.Tables["everyday"].NewRow();
- datarow[0] = Convert.ToString(i);
- datarow[1] = comboBox4.Text.Trim();
- datarow[2] = textBox1.Text.Trim();
- datarow[3] = dateTimePicker1.Text.Trim();
- datarow[4] = comboBox1.Text.Trim();
- datarow[5] = comboBox2.Text.Trim();
- MyDataSet.Tables["everyday"].Rows.Add(datarow);
- }
- void privat (int i)
- {
- MyDatatable = MyDataSet.Tables["private"];
- DataRow datarow = MyDataSet.Tables["private"].NewRow();
- datarow[0] = Convert.ToString(i);
- datarow[1] = comboBox4.Text.Trim();
- datarow[2] = textBox1.Text.Trim();
- datarow[3] = dateTimePicker1.Text.Trim();
- datarow[4] = comboBox1.Text.Trim();
- datarow[5] = comboBox2.Text.Trim();
- MyDataSet.Tables["private"].Rows.Add(datarow);
- }
- private void button1_Click(object sender, EventArgs e)
- {
- DataRow[] datarows = null;
- string s = string.Empty;
- try
- {
- datarows = MyDatatable.Select("id=max(id)");
- s = datarows[0]["id"].ToString();
- }
- catch (Exception)
- {
- }
- if (s == "" || s == string.Empty)
- {
- s = "0";
- }
- int i = int.Parse(s) + 1;
- if (comboBox4.SelectedIndex == 0)
- {
- job(i);
- }
- if (comboBox4.SelectedIndex == 2)
- {
- everyday(i);
- }
- if (comboBox4.SelectedIndex == 1)
- {
- privat(i);
- }
- xmldoc = new XmlDocument();
- xmldoc.InnerXml = MyDataSet.GetXml();
- XmlDeclaration xmldeclaration = xmldoc.CreateXmlDeclaration("1.0", "windows-1251", "yes");
- xmldoc.InsertBefore(xmldeclaration, xmldoc.DocumentElement);
- xmldoc.Save(sCurDir + @"\XMLFile1.xml");
- MyDataSet = new DataSet();
- MyDataSet.ReadXml(sCurDir + @"\XMLFile1.xml", XmlReadMode.Auto);
- MyDatatable = MyDataSet.Tables[0];
Исправила все работает ВСЕМ спасибо за помощь
Листинг программы
- MyDatatable = MyDataSet.Tables[1];
- DataRow datarow = MyDataSet.Tables[1].NewRow();
- datarow[0] = Convert.ToString(i);
- datarow[1] = comboBox4.Text.Trim();
- datarow[2] = textBox1.Text.Trim();
- datarow[3] = dateTimePicker1.Text.Trim();
- datarow[4] = comboBox1.Text.Trim();
- datarow[5] = comboBox2.Text.Trim();
- MyDataSet.Tables[1].Rows.Add(datarow);
Решение задачи: «Добавление данных в XML файл с несколькими родительскими элементами»
textual
Листинг программы
- namespace ConsoleApplication8
- {
- class Program
- {
- static void Main(string[] args)
- {
- var news = NewsType.Create("database.xml");
- }
- }
- }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д