Good day!
Before me is the next task - to organize the recording of data in the XML element DatagridView, and after reading there from the same file.
Writing to XML:
XmlTextWriter writer = null; writer = new XmlTextWriter("TaskList.xml", System.Text.Encoding.Unicode); writer.Formatting = Formatting.Indented; writer.WriteStartDocument(); writer.WriteStartElement("TasksTable"); writer.WriteAttributeString("Type", "XML0.1"); writer.WriteAttributeString("Version", "1.0.0.0"); //Запись данных writer.WriteStartElement("TaskList"); for (int i = 0; i < TasksTable.RowCount ; i++) { writer.WriteStartElement("Row"); writer.WriteAttributeString("ID", TasksTable.Rows[i].Cells[0].Value.ToString()); writer.WriteAttributeString("TaskIsDone", TasksTable.Rows[i].Cells[1].Value.ToString()); writer.WriteAttributeString("TaskIsOutOfDateDate", TasksTable.Rows[i].Cells[2].Value.ToString()); writer.WriteAttributeString("TaskCreated", TasksTable.Rows[i].Cells[3].Value.ToString()); writer.WriteAttributeString("Executor", TasksTable.Rows[i].Cells[4].Value.ToString()); writer.WriteAttributeString("TaskName", TasksTable.Rows[i].Cells[5].Value.ToString()); writer.WriteAttributeString("TaskText", TasksTable.Rows[i].Cells[6].Value.ToString()); writer.WriteAttributeString("TaskDoneDate", TasksTable.Rows[i].Cells[7].Value.ToString()); writer.WriteEndElement(); } writer.WriteEndElement(); writer.WriteEndElement(); writer.WriteEndDocument(); writer.Close();
Everything is logical and understandable.
As a result, I get the file:
<TasksTable Type="XML0.1" Version="1.0.0.0"> <TaskList> <Row ID="1" TaskIsDone="False" TaskIsOutOfDateDate="True" TaskCreated="06.11.2012 21:57:02" Executor="1" TaskName="1" TaskText="" TaskDoneDate="06.11.2012 21:57:02"/> <Row ID="2" TaskIsDone="False" TaskIsOutOfDateDate="True" TaskCreated="06.11.2012 21:57:06" Executor="2" TaskName="2" TaskText="" TaskDoneDate="06.11.2012 21:57:06"/> <Row ID="3" TaskIsDone="False" TaskIsOutOfDateDate="True" TaskCreated="06.11.2012 21:57:09" Executor="3" TaskName="3" TaskText="" TaskDoneDate="06.11.2012 21:57:09"/> </TaskList> </TasksTable>
(it is hard to see, but here there are three lines, as there were three lines in the e-management).
The problem is reading from this file. We determine the number of lines which should be without problems, but the values themselves are not readable.
XmlTextReader reader = new XmlTextReader ("TaskList.xml"); reader.WhitespaceHandling = WhitespaceHandling.None;
reader.ReadStartElement(); for (int i = 1; i <= reader.LineNumber; i++) { TasksTable.Rows.Add(); while (reader.Read()) { MessageBox.Show(reader.Value); //пустые значения, но кол-во сообщений равно кол-ву колонок } }
I have never had to serialize complex objects such as a DataGridView, but I myself generally 1Snik) Can you please tell me which direction to go? Thank.