已有打开的与此连接相关联的 DataReader,必须首先将它关闭
如果把用rs.Close();上面的错误就会消失 但循环后就会出现DataReader已关闭
请问我这个rs.Close();加在哪? 或者我怎么弄这个循环
高手顺便帮我看看代码有没有错误 我第一次用DataTable绑定DataGrid
private void Page_Load(object sender, System.EventArgs e)
{
if(!Page.IsPostBack)
{
DataTable table=new DataTable();
table.Columns.Add("ID");
table.Columns.Add("类别名称");
table.Columns.Add("所属类别");
SqlConnection conn=ManageFunction.Create();
conn.Open();
SqlCommand cmd=new SqlCommand("select * from pang_book_leibie where leibieid=0",conn);
SqlDataReader rs=cmd.ExecuteReader();
while(rs.Read())
{
DataRow dr=table.NewRow();
dr["ID"]=rs["id"].ToString();
dr["类别名称"]=rs["bookname"].ToString();
dr["所属类别"]="大类";
string leibieid=rs["leibieid"].ToString();
//rs.Close();
SqlCommand cmd2=new SqlCommand("select * from pang_book_leibie where leibieid="+leibieid,conn);
SqlDataReader rs2=cmd2.ExecuteReader();
table.Rows.Add(dr);
while(rs2.Read())
{
dr=table.NewRow();
dr["ID"]=rs2["id"].ToString();
dr["类别名称"]=rs2["bookname"].ToString();
dr["所属类别"]="小类";
table.Rows.Add(dr);
}
rs2.Close();
cmd2.Dispose();
}
this.MyDataGrid.DataSource=table;
this.MyDataGrid.DataBind();
}
}