2
我有一個多結果查詢,並試圖將每個結果綁定到單獨的DataGridView。DataTable.Load跳到多結果數據讀取器中的下一個結果集
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();
}
,如果我不將數據加載到數據表,不綁定到網格,我會得到6的結果集,但在上面的代碼中,我得到; y中的第一,第三和第五的結果集,看上去像填充一樣跳過每個循環中的結果集。
問題是:
- 爲什麼發生這種情況。
- 實現此目標的最簡單解決方案是什麼?
'DataTable.Load'自動將讀取器提前到下一個結果。 –