質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
XML

XMLは仕様の1つで、マークアップ言語群を構築するために使われています。

C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

Visual Studio

Microsoft Visual StudioはMicrosoftによる統合開発環境(IDE)です。多種多様なプログラミング言語に対応しています。

.NET Framework

.NET Framework は、Microsoft Windowsのオペレーティングシステムのために開発されたソフトウェア開発環境/実行環境です。多くのプログラミング言語をサポートしています。

Q&A

解決済

1回答

4698閲覧

c#でdataGridViewをxmlファイルとして保存する方法

karaageman

総合スコア1

XML

XMLは仕様の1つで、マークアップ言語群を構築するために使われています。

C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

Visual Studio

Microsoft Visual StudioはMicrosoftによる統合開発環境(IDE)です。多種多様なプログラミング言語に対応しています。

.NET Framework

.NET Framework は、Microsoft Windowsのオペレーティングシステムのために開発されたソフトウェア開発環境/実行環境です。多くのプログラミング言語をサポートしています。

0グッド

0クリップ

投稿2020/05/22 09:02

編集2020/05/22 09:48

前提・実現したいこと

家計簿アプリを作成中です。
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/ツールのバージョンなど)

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2020/05/22 09:39

コードは ``` と ``` で囲ってください。インデントされて見やすくなるので。インデントされてないコードは質問者さん自身も読む気がしないのでは。赤の他人の回答者・閲覧者はなおさらです。読んでもらえる努力をしましょう。
退会済みユーザー

退会済みユーザー

2020/05/22 09:40

あと、開発環境(Visual Studio, .NET Framework のバージョンなど)は必ず書くようにしましょう。
karaageman

2020/05/22 09:42

すいません。初めて投稿したもので無知でした。ご指摘ありがとうございます。
guest

回答1

0

ベストアンサー

dataGridViewをxmlファイルとして保存する方法

以下の記事は、xml ファイルを DataSet に取得してきて、それを BindingSource 経由で DataGridView に表示し、ユーザーが DataGridView を編集後、編集結果をもとの xml ファイルに反映するものです。この応用でできると思います。

XML ファイルを DataGridView に表示
http://surferonwww.info/BlogEngine/post/2019/04/26/show-content-of-xml-file-on-datagridview.aspx

投稿2020/05/22 09:36

退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

karaageman

2020/05/22 11:11

読んで考えてみました。これは、xmlファイルをあらかじめ入力して決まったファイルにデータを入れるものだと思ったのですが、新規ファイルを作成して保存したいです。もし言っていることが違っていたらすいません。
退会済みユーザー

退会済みユーザー

2020/05/22 11:24

それも応用でできるはずです。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問