Member 13375990 Ответов: 2

Как обновить XML-файл из datagridview


я был беспомощен плз, помогите мне с этим у меня есть datagridview и XML-файл, если я сделал какие-либо изменения в элементе управления datagridview после изменения должен быть там в XML-файл, я не знаю, как получить доступ к узлам и desecendents.

Что я уже пробовал:

if (e. ColumnIndex = = 10)
{
XDocument xdoc = XDocument.Нагрузка("xml.xml");

DataGridViewRow data=dataGridView1. Rows[1];
данные.Ячейки[0].Значение = dataGridView1.Ряды[электронный.Параметр rowindex].Ячейки[0]. Значение;
данные.Клетки[1].Значение = dataGridView1.Ряды[электронный.Параметр rowindex].Ячейки[1]. Значение;
данные.Клеток[2].Значение =dataGridView1.Ряды[электронный.Параметр rowindex].Ячейки[2]. Значение;
данные.Клеток[3].Значение = dataGridView1.Ряды[электронный.Параметр rowindex].Ячейки[3]. Значение;
данные.Клеток[4].Значение = dataGridView1.Ряды[электронный.Параметр rowindex].Ячейки[4]. Значение;
данные.Клеток[5].Значение =dataGridView1.Ряды[электронный.Параметр rowindex].Ячейки[5]. Значение;
данные.Клеток[6].Значение = dataGridView1.Ряды[электронный.Параметр rowindex].Ячейки[6]. Значение;
данные.Клеток[7].Значение = dataGridView1.Ряды[электронный.Параметр rowindex].Ячейки[7]. Значение;
данные.Клеток[8].Значение =dataGridView1.Ряды[электронный.Параметр rowindex].Ячейки[8]. Значение;
данные.Клеток[9].Значение = dataGridView1.Ряды[электронный.Параметр rowindex].Ячейки[9]. Значение;
xdoc по.Сохранить("xml3.xml");

2 Ответов

Рейтинг:
2

Graeme_Grant

Непонятно в каком формате находятся данные так что вот вам пример:

<dataset>
  <employee>
    <name>Fred</name>
  </employee>
</dataset>

И код для загрузки и усилитель; сохранить...
private void Load()
{
    string path = @".\dataset.xml";
    DataSet ds = new DataSet();
    ds.ReadXml(path);
    dataGridView1.DataSource = ds;
    dataGridView1.DataMember = "employee";
}

private void Save()
{
    string path = @".\dataset.xml";
    DataSet ds = (DataSet) dataGridView1.DataSource;
    ds.WriteXml(path);
}


Рейтинг:
1

RickZeeland

Я бы рекомендовал использовать Объектом bindingsource, вот отличная статья об этом: Подробное Руководство По Привязке Данных[^]

пример (цитата):

BindingSource bs = new BindingSource();                              //**

private void Form1_Load(object sender, EventArgs e)
{
    bs.DataSource = typeof(Airplane);                                //**
    bs.Add(new Airplane("Boeing 747", 800));
    bs.Add(new Airplane("Airbus A380", 1023));
    bs.Add(new Airplane("Cessna 162", 67));

    grid.DataSource = bs;                                            //**
    grid.AutoGenerateColumns = true; // create columns automatically //**
    txtModel.DataBindings.Add("Text", bs, "Model");                  //**
}
Здесь используется класс, но вы, вероятно, хотите использовать List<> что вполне возможно.
Чтобы сохранить свой класс или список, вы можете использовать сериализацию.