2
複数の結果クエリがあり、各結果を個別のDataGridViewにバインドしようとしています。私はDataTableのにデータをロードしていないと、グリッドにバインドしていない場合、私は6の結果セットを取得しますDataTable.Load複数結果のDataReaderで次の結果セットにスキップ
using (SqlConnection con = new SqlConnection(connectionString))
{
con.Open();
SqlCommand cmd = new SqlCommand("SELECT 1 select 2 select 3 select 4 select 5 select 6"
, con);
SqlDataReader reader = cmd.ExecuteReader();
int x = 50;
int y = 100;
do
{
DataGridView dgv1 = new DataGridView();
DataTable dt = new DataTable();
dt.Load(reader);
dgv1.DataSource = dt;
dgv1.Left = x;
dgv1.Top = y;
dgv1.Height = 60;
y = y + 70;
this.Controls.Add(dgv1);
} while (reader.NextResult());
reader.Close();
}
が、上記のコードでは、私が乗る;第一、第三及び第五結果セットは、ルックスのy populateのように、各ループに結果セットをスキップします。
質問は以下のとおりです。
- これはなぜ起こりますか。
- この目標を達成する最も簡単な方法は何ですか?
「DataTable.Load」は自動的にリーダーを次の結果に進めます。 –