none
簡易データセットのフィールド名 RRS feed

  • 質問

  • お世話になります。

    現在のプロジェクトでは、厳密DataSetを使用せず簡易DataSetを使用しており、
    フィールド名を文字列で記述するため、フィールド名を間違えて記述していると
    当然コンパイル時は正常に終了するのですが、実行するまでその不具合が発見できないことが
    たびたびあり、結構面倒になっています。ただ厳密DataSetを使用することは、「しない」と言われていますので、
    それ以外の方法で、下記対応を提案してと思っていますが、なにかほかに方法があれば教えていただけませんか。

    class TableA

    {
     public const string Name = "Name";
     public const string ID = "ID";

    }

    2013年3月28日 0:51

回答

  • 厳密DataSetでない限り、ソース上どこにもフィールド名は定義されていないわけですから、人間が間違えずにそのフィールド名をコーディングするには、どこかに用意しておいて、それと比較してコンパイラに正しいかを判断させるしかありません。
    よって、Brilliaさんが書かれているような方法になると思いますが、いちいちインスタンスを生成するような使い方は面倒だと思います。(単なる書き損じだと思いますが・・・)

    ところで、なぜ厳密DataSet、いわゆる型付データセットを使わないのでしょうか? もし、使わない理由を解決できるのであれば、そちらの方が良いと思うのですが・・・


    ★良い回答には回答済みマークを付けよう! わんくま同盟 MVP - Visual C# http://d.hatena.ne.jp/trapemiya/

    • 回答としてマーク Brillia 2013年3月28日 4:19
    2013年3月28日 3:08
    モデレータ

すべての返信

  • 厳密DataSetでない限り、ソース上どこにもフィールド名は定義されていないわけですから、人間が間違えずにそのフィールド名をコーディングするには、どこかに用意しておいて、それと比較してコンパイラに正しいかを判断させるしかありません。
    よって、Brilliaさんが書かれているような方法になると思いますが、いちいちインスタンスを生成するような使い方は面倒だと思います。(単なる書き損じだと思いますが・・・)

    ところで、なぜ厳密DataSet、いわゆる型付データセットを使わないのでしょうか? もし、使わない理由を解決できるのであれば、そちらの方が良いと思うのですが・・・


    ★良い回答には回答済みマークを付けよう! わんくま同盟 MVP - Visual C# http://d.hatena.ne.jp/trapemiya/

    • 回答としてマーク Brillia 2013年3月28日 4:19
    2013年3月28日 3:08
    モデレータ
  • ご返事ありがとうございます。

    厳密DataSetを使用しない理由は、同じレベルの立場の人間では誰もわからないそうで、
    このプロジェクトは「そういうもんなので」としか言われていないようです。
    途中からプロジェクトに参加しているので、様子を見ている状態で。。。

    constメンバにするのでインスタンスを生成することもないので、
    これで提案してみることにします。。。

    厳密データセットならプログラミングするのも、メンバフィールドを予測表示してくれるので楽なんですけどね。。。

    2013年3月28日 4:18
  • 厳密DataSetというと何やら難しいように聞こえますが、そのDataSetを扱いやすくするために、専用に用意されたクラスと考えると皆に納得してもらえるかもしれません。例えば、汎用の靴があれば歩いたり走ったりすることはできますが、走る時はランニングシューズを、雪の時にはスノーシューズを、雨の日はレインシューズをと、それ専用の靴を用意した方が使い勝手が良いのと同じ理由です。

    constの件は失礼いたしました。全インスタンスで共通ですから、インスタンス変数になるわけもなく・・・、ぼけてましたね。
    すみません。
    一応、関連として以下をご紹介しておきます。

    列挙体に近い使い方を、文字列で出来ないでしょうか
    http://social.msdn.microsoft.com/Forums/ja-JP/csharpgeneralja/thread/b866e03a-2d94-44d5-8995-f8279d2885a4


    ★良い回答には回答済みマークを付けよう! わんくま同盟 MVP - Visual C# http://d.hatena.ne.jp/trapemiya/

    2013年3月28日 5:04
    モデレータ