Не могу понять, что еще мне нужно сделать, чтобы сделать эту работу.
Я пытаюсь добавить больше строк в мой набор данных и представление данных, а затем вывести одну из них в xml
В идеале я хочу сохранить значения в наборе данных, затем связать datagridview и при закрытии формы вывести набор данных в файл XML. Но по какой-то причине это не работает. Он обновляет изменения в текущих строках, но не добавляет новые.
public void LoadSongInfo(string filename)
{
TagLib.File tagFile = TagLib.File.Create(filename);
string artist = tagFile.Tag.FirstAlbumArtist;
string album = tagFile.Tag.Album;
string title = tagFile.Tag.Title;
DataRow newtrack = dsStore.Tables["Track"].NewRow();
newtrack["Id"] = "5";
newtrack["Artist"] = artist;
newtrack["Album"] = album;
newtrack["Filepath"] = filename;
newtrack["Title"] = title;
dsStore.Tables["Track"].Rows.Add(newtrack);
dsStore.Tables["Track"].AcceptChanges();
dataGridView1.DataMember = "Track";
dataGridView1.DataSource = dsStore;
}
private void mediaplayer_FormClosing(object sender, FormClosingEventArgs e)
{
string path = "..//..//..//temp.xml";
dataGridView1.EndEdit();
if (dsStore.GetChanges() != null)
{
dsStore.WriteXml(path);
}
}
Я заметил, что
dsStore.GetChanges()
возвращает ноль, если ячейка не была отредактирована. Поэтому я попытался удалить это заявление if, но все равно ничего.
РЕДАКТИРОВАТЬ: я пытался записать в пустой XML-файл, чтобы увидеть, если он пишет, по крайней мере, что-то, и без ошибок он проходит, как будто все в порядке, тогда, когда я открываю test2.xml его пустое ничего не было написано. (
private void mediaplayer_FormClosing(object sender, FormClosingEventArgs e)
{
string path2 = "..//..//..//test2.xml";
dsStore.WriteXml(path2);
}