我有一个多结果查询,我试图将每个结果绑定到单独的DataGridView.
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();
}
Run Code Online (Sandbox Code Playgroud)
如果我不将数据加载到DataTable中并且不将其绑定到网格,我将获得6个结果集,但在上面的代码中,我继续; y第1,第3和第5个结果集,看起来像填充跳过结果集每个循环.
问题是:
小智 7
DataTable.Load,前进到下一个结果集,因此您不需要使用NextResult().
只需执行循环,直到读者打开.
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.IsClosed); // here is the change
reader.Close();
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
834 次 |
| 最近记录: |