2010年12月7日火曜日

DataTable のレコード数を確認する方法

DataTable のレコード数を確認しようとコードを書いていたら DataTable.Count なんてプロパティに気が付きました。通常なら DataTable.Rows.Count です。
DataTable にこんなプロパティあったかな?と思いながら MSDN を見てみるとやはりありません。

Shift+F2 で定義を覗いてみると ~.Designer.cs がオープン。
内容は以下の通り
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
    [global::System.ComponentModel.Browsable(false)]
    public int Count {
        get {
            return this.Rows.Count;
        }
    }

データセットデザイナでデータテーブルを定義すると Count プロパティが自動で作成される様です。実際に返しているのは Rows.Count なので結局は DataTable.Rows.Count と同じです。
親切のつもりで自動作成されているのか Visual Studio の動作に必要なのか不明です。いずれにせよ DataTable.Rows.Count の方が分り易いですね。

ちなみに私の使用している Visual Studio のバージョンは 2005 なので、最新の Visual Studio でも同じ動作をするのかは不明です。
Visual Studio 2010 は高いんですよね。いまさら Visual Studio 2008 を買うのも、何だか。

データセットデザイナを使わないで DataTable を定義している人や DataTable の仕組みをしっかり理解してコードを書いていた人なら一瞬で気が付いていた事でしょう。
別にどうでも良い事ですが、気が付くのに数年かかりました。へっぽこですね。

■環境
OS:Microsoft Windows XP Home Edition 日本語 ServicePack 3
IDE:Microsoft Visual Studio 2005 Standard Edition 日本語 Service Pack 1
Framework:Microsoft .NET Framework Version 2.0 SP2