執筆者: インフォシェア株式会社 小高 太郎

動作確認環境: .NET Framework 2.0 以上、Visual Studio 2005 以上


データベースの集合関数を用いて結果セットのレコード数を取得する場合、ExecuteReader メソッドから DataReader を使用するよりも、ExecuteScalar メソッドから直接値を取得すれば、よりプログラムを簡素に記述することが可能です。

Visual Basic
Import System.Data.SqlClient 
 
    Sub Main() 
        Using cn As SqlConnection = New SqlConnection() 
            cn.ConnectionString = "Data Source=.;Initial Catalog=Northwind;Integrated Security=True" 
            cn.Open() 
            Dim cmd As SqlCommand = New SqlCommand("SELECT COUNT(*) FROM Products", cn) 
 
            Dim Count As Integer = cmd.ExecuteScalar() 
            Console.WriteLine("商品数は{0}件です", Count) 
        End Using 
    End Sub 
 

ExecuteScalar メソッドは、結果セットの 1 行目の 1 列目の値をスカラー値として返すため、他の集合関数 (AVG、SUM)、SQL Server のグローバル変数 (@@SPID,@@ERROR) などの値を取得するとき等にも使用すると便利です。ただし、値の NULL チェックの実行をおすすめいたします。(今回の例はカウントの取得ですので省略してあります。)

参考リンク


Code Recipe

ページのトップへ