Добавление данных в XML файл с несколькими родительскими элементами - C#

Узнай цену своей работы

Формулировка задачи:

Есть xml файл
Листинг программы
  1. <?xml version="1.0" encoding="windows-1251" standalone="yes"?>
  2. <NewDataSet>
  3. <private>
  4. <id>1</id>
  5. <category>Личное</category>
  6. <text>turtuty</text>
  7. <data>7 декабря 2015 г.</data>
  8. <importance>Важно</importance>
  9. <state>Не выполняется</state>
  10. </private>
  11. <private>
  12. <id>2</id>
  13. <category>Личное</category>
  14. <text>yyyyyyyyyyyyyyyyyy</text>
  15. <data>7 декабря 2015 г.</data>
  16. <importance>Важно</importance>
  17. <state>Не выполняется</state>
  18. </private>
  19. <private>
  20. <id>3</id>
  21. <category>Личное</category>
  22. <text>yyyyyyyyyyyyyyiiiiiiiiiiiiiiiiiiiiiiiii</text>
  23. <data>7 декабря 2015 г.</data>
  24. <importance>Не важно</importance>
  25. <state>В процессе</state>
  26. </private>
  27. <everyday>
  28. <id>4</id>
  29. <category>Повседневное</category>
  30. <text>turtuty</text>
  31. <data>7 декабря 2015 г.</data>
  32. <importance>Важно</importance>
  33. <state>Не выполняется</state>
  34. </everyday>
  35. <job>
  36. <id>5</id>
  37. <category>Работа</category>
  38. <text>turtuty</text>
  39. <data>7 декабря 2015 г.</data>
  40. <importance>Важно</importance>
  41. <state>Не выполняется</state>
  42. </job>
  43. </NewDataSet>
Не получается сделать добавление по категориям private, job, everydae. Добавляется только для private.
Листинг программы
  1. DataRow[] datarows = null;
  2. string s = string.Empty;
  3. try
  4. {
  5. datarows = MyDatatable.Select("id=max(id)");
  6. s = datarows[0]["id"].ToString();
  7. }
  8. catch (Exception)
  9. {
  10. }
  11. if (s == "" || s == string.Empty)
  12. {
  13. s = "0";
  14. }
  15. int i = int.Parse(s) + 1;
  16. DataRow datarow = MyDataSet.Tables[0].NewRow();
  17. datarow[0] = Convert.ToString(i);
  18. datarow[1] = comboBox4.Text.Trim();
  19. datarow[2] = textBox1.Text.Trim();
  20. datarow[3] = dateTimePicker1.Text.Trim();
  21. datarow[4] = comboBox1.Text.Trim();
  22. datarow[5] = comboBox2.Text.Trim();
  23. MyDataSet.Tables[0].Rows.Add(datarow);
  24. xmldoc = new XmlDocument();
  25. xmldoc.InnerXml = MyDataSet.GetXml();
  26. XmlDeclaration xmldeclaration = xmldoc.CreateXmlDeclaration("1.0", "windows-1251", "yes");
  27. xmldoc.InsertBefore(xmldeclaration, xmldoc.DocumentElement);
  28. xmldoc.Save(sCurDir + @"\XMLFile1.xml");
  29. MyDataSet = new DataSet();
  30. MyDataSet.ReadXml(sCurDir + @"\XMLFile1.xml", XmlReadMode.Auto);
  31. MyDatatable = MyDataSet.Tables[0];
Знаю что нужно прописать условия для выбранного comboBox4.SelectedIndex не выходит MyDataSet.Tables[0] присвоить MyDataSet.Tables["название нужной категории"]
Попыталась так результата 0
Листинг программы
  1. void job (int i)
  2. {
  3. MyDatatable = MyDataSet.Tables["job"];
  4. DataRow datarow = MyDataSet.Tables["job"].NewRow();
  5. datarow[0] = Convert.ToString(i);
  6. datarow[1] = comboBox4.Text.Trim();
  7. datarow[2] = textBox1.Text.Trim();
  8. datarow[3] = dateTimePicker1.Text.Trim();
  9. datarow[4] = comboBox1.Text.Trim();
  10. datarow[5] = comboBox2.Text.Trim();
  11. MyDataSet.Tables["job"].Rows.Add(datarow);
  12. }
  13. void everyday (int i)
  14. {
  15. MyDatatable = MyDataSet.Tables["everyday"];
  16. DataRow datarow = MyDataSet.Tables["everyday"].NewRow();
  17. datarow[0] = Convert.ToString(i);
  18. datarow[1] = comboBox4.Text.Trim();
  19. datarow[2] = textBox1.Text.Trim();
  20. datarow[3] = dateTimePicker1.Text.Trim();
  21. datarow[4] = comboBox1.Text.Trim();
  22. datarow[5] = comboBox2.Text.Trim();
  23. MyDataSet.Tables["everyday"].Rows.Add(datarow);
  24. }
  25. void privat (int i)
  26. {
  27. MyDatatable = MyDataSet.Tables["private"];
  28. DataRow datarow = MyDataSet.Tables["private"].NewRow();
  29. datarow[0] = Convert.ToString(i);
  30. datarow[1] = comboBox4.Text.Trim();
  31. datarow[2] = textBox1.Text.Trim();
  32. datarow[3] = dateTimePicker1.Text.Trim();
  33. datarow[4] = comboBox1.Text.Trim();
  34. datarow[5] = comboBox2.Text.Trim();
  35. MyDataSet.Tables["private"].Rows.Add(datarow);
  36. }
  37. private void button1_Click(object sender, EventArgs e)
  38. {
  39. DataRow[] datarows = null;
  40. string s = string.Empty;
  41. try
  42. {
  43. datarows = MyDatatable.Select("id=max(id)");
  44. s = datarows[0]["id"].ToString();
  45. }
  46. catch (Exception)
  47. {
  48. }
  49. if (s == "" || s == string.Empty)
  50. {
  51. s = "0";
  52. }
  53. int i = int.Parse(s) + 1;
  54. if (comboBox4.SelectedIndex == 0)
  55. {
  56. job(i);
  57. }
  58. if (comboBox4.SelectedIndex == 2)
  59. {
  60. everyday(i);
  61. }
  62. if (comboBox4.SelectedIndex == 1)
  63. {
  64. privat(i);
  65. }
  66. xmldoc = new XmlDocument();
  67. xmldoc.InnerXml = MyDataSet.GetXml();
  68. XmlDeclaration xmldeclaration = xmldoc.CreateXmlDeclaration("1.0", "windows-1251", "yes");
  69. xmldoc.InsertBefore(xmldeclaration, xmldoc.DocumentElement);
  70. xmldoc.Save(sCurDir + @"\XMLFile1.xml");
  71. MyDataSet = new DataSet();
  72. MyDataSet.ReadXml(sCurDir + @"\XMLFile1.xml", XmlReadMode.Auto);
  73. MyDatatable = MyDataSet.Tables[0];
Исправила все работает ВСЕМ спасибо за помощь
Листинг программы
  1. MyDatatable = MyDataSet.Tables[1];
  2. DataRow datarow = MyDataSet.Tables[1].NewRow();
  3. datarow[0] = Convert.ToString(i);
  4. datarow[1] = comboBox4.Text.Trim();
  5. datarow[2] = textBox1.Text.Trim();
  6. datarow[3] = dateTimePicker1.Text.Trim();
  7. datarow[4] = comboBox1.Text.Trim();
  8. datarow[5] = comboBox2.Text.Trim();
  9. MyDataSet.Tables[1].Rows.Add(datarow);

Решение задачи: «Добавление данных в XML файл с несколькими родительскими элементами»

textual
Листинг программы
  1. namespace ConsoleApplication8
  2. {
  3.     class Program
  4.     {
  5.         static void Main(string[] args)
  6.         {
  7.             var news = NewsType.Create("database.xml");
  8.         }
  9.     }
  10. }

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

10   голосов , оценка 4.1 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут