.ExecuteReader()の戻り値を格納する変数の使いまわし。
readerを一旦クローズして、改めて.ExecuteReader()の戻り値を格納してます。
見かけない書き方ですが…メモリーリークとか将来の障害とか…問題あるんでしょうかねぇ。
readerを使いまわす!
private void button1_Click(object sender, EventArgs e)
{
SqlConnection conn = new SqlConnection();
SqlCommand command = new SqlCommand();
SqlDataReader reader;
conn.ConnectionString = @"Data Source= … 接続文字列 …";
conn.Open();
command.Connection = conn;
//1回目----------------------------------------------------------------------
command.CommandText = "select 氏名, 所属 from ユーザマスタ where 社員番号 = '123123'";
reader = command.ExecuteReader();
while (reader.Read())
{
Console.WriteLine("氏名: {0} 所属: {1}", reader["氏名"], reader["所属"]);
}
reader.Close(); //<------一旦クローズ!!!
//2回目----------------------------------------------------------------------
command.CommandText = "select 氏名, 所属 from ユーザマスタ where 社員番号 = '456456'";
reader = command.ExecuteReader();
while (reader.Read())
{
Console.WriteLine("氏名: {0} 所属: {1}", reader["氏名"], reader["所属"]);
}
conn.Close();
}