この作業を行うために何が必要なのか分かりません。 私はデータセットに複数の行を追加しようとしていますが、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()
がnullを返すことに気づきました。だから私はif文を削除しようとしましたが、まだ何もありません。
EDIT:空のxmlファイルに書き込んで、少なくとも何かが書き込まれているかどうかを確認しようとしましたが、何もエラーが発生していないので、何も書かれていないtest2.xmlを開きます。 。 :(
private void mediaplayer_FormClosing(object sender, FormClosingEventArgs e)
{
string path2 = "..//..//..//test2.xml";
dsStore.WriteXml(path2);
}
私は新しいデータセットを作成し、最初の値を渡してみました。データセットに新しい行を追加しないと、値は空のxmlファイルに渡されますが、行を追加すると何も渡されません。 – Andres