C# と VB.NET の質問掲示板
ASP.NET、C++/CLI、Java 何でもどうぞ
C# と VB.NET の入門サイト
datagridviewからxmlへの出力について [1]
掲示板トップ
C# と VB.NET 入門
新規作成
利用方法/規約
ツリー表示
トピック表示
ランキング
記事検索
過去ログ
[トピック内 21 記事 (21 - 21 表示)]
<<
0
|
1
>>
■87115
/ inTopicNo.21)
Re[5]: datagridviewからxmlへの出力について
▼
■
□投稿者/ WebSurfer
(1469回)-(2018/04/12(Thu) 12:23:43)
■
No87107
(kaz さん) に返信
> xmlを利用した理由は、自分が知っているデータベース形式として
> csv、json、xmlがあって、プログラム中で書き換えたりDataGridViewに表示するのに
> 一番良さそうと思ったからです
> つまり深い理由は無いです
であれば、データベースには SQL Server, My SQL, Access 等を使うことをお勧めします。
もともと、DataSet / DataTable は SQL Server, My SQL, Access 等のデータベース/テーブル
のメモリ上での表現で、非接続型データアクセスで DB の表示・編集・更新を行うためのものの
ようです。
以下の記事の図1、図2を見てもらうとそのあたりのことが一目でわかると思います。
DB 設計者のための明解 ADO.NET 第 1 回
https://msdn.microsoft.com/ja-jp/library/cc482903.aspx
その目的に沿った使い方ができるように Visual Studio でアプリを生成するためのコントロール
やウィーザードが用意されています。
どうしても xml ということでなければ、わざわざ茨の道を進むことはなさそうだと思います。
解決済み
引用返信
編集キー/
編集
このトピックをツリーで一括表示
<前の20件
トピック内ページ移動 /
<<
0
|
1
>>
このトピックに書きこむ
入力内容にタグは利用できません。
他人を中傷する記事は管理者の判断で予告無く削除されます。
半角カナは使用しないでください。文字化けの原因になります。
名前、コメントは必須記入項目です。記入漏れはエラーになります。
入力内容の一部は、次回投稿時の手間を省くためブラウザに記録されます。
URL は自動的にリンクされます。
記事中に No*** のように書くとその記事にリンクされます(No は半角英字/*** は半角数字)。
名前
(*必須)
E-Mail (任意)
Web サイト (任意)
投稿モード
通常モード
図表モード (ソースコードを貼る場合はこちらを使用)
本文
(質問の場合は、開発環境・使用言語のバージョンなどを最初に書いてください)
■No87063 (魔界の仮面弁士 さん) に返信 > C# をお使いなのですし、質問文中でも大文字小文字を > 正しく書き分けるようにした方が良いかと思います。 > (これが VB の質問なら、大文字小文字の違いにも目を瞑るのですが) > > > ■No87059 (kaz さん) に返信 >>| りんご | | >>の場合は(価格が空白)、 >><fruits> >><name>りんご</name> >></fruits> >>と<price>の項目が消えてしまいます > > price フィールドのデータ型は何ですか? > また、「空白」の場合にはどのような値がセットされていますか? > > > > ■No87061 (kaz さん) に返信 >>xml書き込みは、 >>DataSet.WriteXml メソッド (String, XmlWriteMode)で >>xmlwritemodeをWriteSchemaにして行っています > > 質問文と内容が微妙に異なっているようですね。 > > 現在のコードは、「DataGridView からの XML 出力」ではなく、 > 「DataSet からの XML 出力」になってしまっているように見えますが、 > それで構わないのでしょうか? > > たとえば、DataTable の列の中に「DataGridView にバインドしていない列」があった場合や、 > DataGridView の列の中に「データバインドしていない列」が含まれていると、 > DataSet.WriteXml の結果は、DataGridView とは合致しませんよね。 > > >>dataGridView1.DataSource = mydataset; >>dataGridView1.DataMember = "label"; > あれ? 出力される XML は、<fruits> なのに、 > DataMember に指定するテーブル名は "label" なのですか?? > > > まず【質問1】の方ですが、 > mydataset.Tables["label"] や > mydataset.Tables["fruits"] の列定義などに > 特に制限が無いのであれば、たとえば下記のコードで > > <fruits> > <name>りんご</name> > <price /> > </fruits> > > な構造を出力されます。 > > > var mydataset = new DataSet("kaz"); > var tbl = mydataset.Tables.Add("fruits"); > tbl.Columns.Add(new DataColumn("name", typeof(string)) { AllowDBNull = false, ReadOnly = true }); > tbl.Columns.Add(new DataColumn("price", typeof(string)) { AllowDBNull = false, ReadOnly = true }); > tbl.Rows.Add("リンゴ", "50"); > tbl.Rows.Add("りんご", string.Empty); > tbl.AcceptChanges(); > > dataGridView1.DataSource = mydataset; > dataGridView1.DataMember = "fruits"; > > var sb = new System.Text.StringBuilder(); > using (var output = new System.IO.StringWriter(sb)) > { > mydataset.WriteXml(output, XmlWriteMode.WriteSchema); > } > textBox1.Text = sb.ToString();
編集キー
自分の投稿を編集する時に必要です
(半角8文字以内)
解決済み
/
解決したらチェックしておきましょう。
プレビュー/
管理者用
-
Child Tree
-