前提・実現したいこと
家計簿アプリを作成中です。
datagridviewのデータをxmlファイルで保存したいです。
1行だけなら保存できたのですがすべての行を保存するために、Listを使ってデータを入れようと考えましたが、うまくいきません。
発生している問題・エラーメッセージ
エラーメッセージでは、下記のコードのforの中で、「System.NullReferenceException: 'オブジェクト参照がオブジェクト インスタンスに設定されていません。」と表示されます。
該当のソースコード
c#
visual studio2019
.NET Framework Version 4.8.03752
//xml形式での保存 //保存するためのクラスを作成 public class SampleClass { //プロパティ public List<string> date; public List<string> division; public List<string> item; public List<string> price; } private void xML形式で保存ToolStripMenuItem_Click(object sender, EventArgs e) { //SaveFileDialogの作成 SaveFileDialog sfd = new SaveFileDialog(); sfd.Filter = "xmlファイル (*.xml)|*.xml|すべてのファイル (*.*)|*.*"; if (sfd.ShowDialog() == System.Windows.Forms.DialogResult.OK) { int i; SampleClass obj = new SampleClass(); for (i = 0; i < dataGridView1.Rows.Count ; i++) { obj.date.Add(dataGridView1[0, i].Value.ToString()); obj.division.Add(dataGridView1[1, i].Value.ToString()); obj.item.Add(dataGridView1[2, i].Value.ToString()); obj.price.Add(dataGridView1[3, i].Value.ToString()); } //XmlSerializerオブジェクトを作成 、オブジェクトの型を指定する XmlSerializer serializer = new XmlSerializer(typeof(SampleClass)); FileStream fs = new FileStream(sfd.FileName, FileMode.Create); //シリアル化し、XMLファイルに保存する serializer.Serialize(fs, obj); fs.Close(); //ファイルを閉じる } }
試したこと
listを用いる以外で各行のデータをxmlに保存できるか考えてみたのですが、思いつきませんでした。
補足情報(FW/ツールのバージョンなど)
回答1件
あなたの回答
tips
プレビュー