C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

ログ内検索
  • キーワードを複数指定する場合は 半角スペース で区切ってください。
  • 検索条件は、(AND)=[A かつ B] (OR)=[A または B] となっています。
  • [返信]をクリックすると返信ページへ移動します。
キーワード/ 検索条件 /
検索範囲/ 強調表示/ ON (自動リンクOFF)
結果表示件数/ 記事No検索/ ON
大文字と小文字を区別する

No.87063 の関連記事表示

<< 0 >>
■87063  Re[1]: datagridviewからxmlへの出力について
□投稿者/ 魔界の仮面弁士 -(2018/04/10(Tue) 11:35:40)
    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();
記事No.87059 のレス /過去ログ149より / 関連記事表示
削除チェック/



<< 0 >>

パスワード/

- Child Tree -