【发布时间】:2013-03-28 15:16:17
【问题描述】:
protected void btnFetch_Click(object sender, EventArgs e)
{
SqlConnection con = new SqlConnection(Helper.ConStr);
SqlCommand cmd = new SqlCommand();
cmd.Connection = con;
cmd.CommandText = "select * from emptable";
con.Open();
SqlDataReader dr = cmd.ExecuteReader();
gv1.DataSource = dr;
gv1.DataBind();
dr.NextResult();
**while (dr.Read())**//It is returning the value as false!
{
SqlCommand cmd1 = new SqlCommand();
cmd1.CommandText = "select * from table1";
Response.Write(dr[0]);
Response.Write(dr[1]);
}
con.Close();
}
我很困惑为什么,数据读取器选择一个“选择语句”,读取它并将其绑定到 Gridview,但是当涉及到使用下一组“选择语句”时,数据读取器没有不做任何事。 dr.Read() 变为 false。
请解释一下为什么会这样?
【问题讨论】:
-
NextResult 返回什么?
-
SqlDataReader.NextResult返回boolean值顺便说一句 -
您应该在您的连接和命令上使用“使用”,这样您就不必自己处置/它们,如果发生异常,它们将被处置。
标签: c# asp.net sql sql-server ado.net