2016年9月15日

SqlDataReader.Readメソッドを使ってデータを読み込む



SQL Serverからデータを読み込むには以下のように行います。

ちなみに今回、SQL Serverにあらかじめ以下のようなテーブルを作成しています。

テーブル名:T_Animals

列名
[ID] [int] NOT NULL
[Name] [nvarchar](50) NULL
[Type] [nvarchar](50) NULL

格納されてるデータ
ID Name Type
1 たま
2 ピーター うさぎ
3 トム
4 お父さん
5 ふてニャン
6 プー くま
7 ファーファ くま
8 ラスカル アライグマ
9 サトちゃん
10 チーバくん
11 パトラッシュ


■C#
string ConnectionString = string.Empty;
ConnectionString = @"Data Source=localhost\MSSQLSERVER;Initial Catalog=TESTDB;Integrated Security=True";

var cnn = new SqlConnection(ConnectionString);

cnn.Open();

var cmd = new SqlCommand();
SqlDataReader dtr = null;

cmd.Connection = cnn;
cmd.CommandType = System.Data.CommandType.Text;
cmd.CommandText = "SELECT [ID], [Name], [Type] FROM [T_Animals]";

// CommandTextをConnectionに送信し、SqlDataReaderを構築
dtr = cmd.ExecuteReader();

if (dtr.HasRows)
{
    // レコードがある場合While文でReadする
    while(dtr.Read())
    {
        Console.WriteLine("{0},{1},{2}", dtr["ID"].ToString(), dtr["Name"], dtr["Type"]);
    }
}

// SqlDataReaderオブジェクトを閉じる
dtr.Close();

cmd.Dispose();
cnn.Close();

■VB
Dim ConnectionString As String = String.Empty
ConnectionString = "Data Source=localhost\MSSQLSERVER;Initial Catalog=TESTDB;Integrated Security=True"

Dim cnn = New SqlConnection(ConnectionString)

cnn.Open()

Dim cmd = New SqlCommand()
Dim dtr As SqlDataReader = Nothing

cmd.Connection = cnn
cmd.CommandType = System.Data.CommandType.Text
cmd.CommandText = "SELECT [ID], [Name], [Type] FROM [T_Animals]"

'CommandTextをConnectionに送信し、SqlDataReaderを構築
dtr = cmd.ExecuteReader()

If dtr.HasRows Then
    'レコードがある場合While文でReadする
    While dtr.Read()
        Console.WriteLine("{0},{1},{2}", dtr("ID").ToString(), dtr("Name"), dtr("Type"))
    End While
End If

'SqlDataReaderオブジェクトを閉じる
dtr.Close()

cmd.Dispose()
cnn.Close()

結果はこのようになります。
1,たま,猫
2,ピーター,うさぎ
3,トム,猫
4,お父さん,犬
5,ふてニャン,猫
6,プー,くま
7,ファーファ,くま
8,ラスカル,アライグマ
9,サトちゃん,象
10,チーバくん,犬
11,パトラッシュ,犬


スポンサーリンク