无法完全弄清楚我还需要做些什么来完成这项工作。 我想添加更多的行到我的数据集和datagridview然后输出一个到xml 理想情况下,我想保存数据集中的值,然后绑定datagridview,当关闭表单输出数据集到一个XML文件。但由于某种原因,这是行不通的。它会更新对当前行的更改,但不会添加新行。将数据集中的新行保存到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()
返回空值,除非电池已被编辑。所以我试图删除,如果声明,但仍然没有。
编辑:我试图写一个空的XML文件,看看它是否至少写了一些东西,并没有错误,像所有事情都是好的,然后当我打开test2.xml它的空白什么都没有写。 :(
private void mediaplayer_FormClosing(object sender, FormClosingEventArgs e)
{
string path2 = "..//..//..//test2.xml";
dsStore.WriteXml(path2);
}
好吧我尝试创建一个新的数据集,并从第一个值传递。如果我不向数据集添加任何新行,它会将值传递给一个空的xml文件,但是如果我添加行,它不会传递任何内容。 – Andres 2011-12-14 22:03:27