生成树的问题!!!

zhangzb1016 2002-06-12 11:21:58
private void StudyBsForm_Load(object sender, System.EventArgs e)
{

StudentClass StuClass = new StudentClass();
SqlDbConn = StuClass.StudentConn();
Sqlcomm = new SqlCommand("select distinct convert(char(4),year(dtm_rxsj)) as rxsj from student order by rxsj",SqlDbConn);
SqlDataReader SqlDr =Sqlcomm.ExecuteReader();
while (SqlDr.Read())
{

TreeNode Tv = new TreeNode();
string TrDateStr = SqlDr["rxsj"].ToString();
Tv.Text = TrDateStr + "年入学的:";
treeView1.Nodes.Add(Tv);
AddSeTree(TrDateStr);

}
}
private void AddSeTree(string SqlQyer)
{

string SubStr = string.Format("select convert(char(2),int_class) as bj from student where convert(char(4),year(dtm_rxsj)) = '{0}'",SqlQyer);
SqlCommand Sqlcomm1 = new SqlCommand(SubStr,SqlDbConn);
SqlDataReader SqlDr1 = Sqlcomm1.ExecuteReader();

while (SqlDr1.Read())
{

treeView1.Nodes[i].Nodes.Add(new TreeNode(SqlDr1["bj"].ToString()));
i++;

}
Sqlcomm1.Dispose();
SqlDr1.Close();

}
}
请问在上面的代码中生成树时报 SqlDataReader 对象已经打开,请使用之前关闭!

此问题如何解结,有更好的办法吗?请告知!!!1
...全文
45 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
zhangzb1016 2002-06-12
  • 打赏
  • 举报
回复
不行,lonk!上面的sqldr报错,因为sqldr在循环体内,不能关的,要不然下次循环时就不能sqldr.read()了,你有好的办法吗??
lonk 2002-06-12
  • 打赏
  • 举报
回复
报错的是那个sqlDataReader?上面那个还是下面那个?
你上面的sqlDrl用完也把它close掉试试
reokok 2002-06-12
  • 打赏
  • 举报
回复
SqlDataReader SqlDr =Sqlcomm.ExecuteReader();
while (SqlDr.Read())
{

TreeNode Tv = new TreeNode();
string TrDateStr = SqlDr["rxsj"].ToString();
Tv.Text = TrDateStr + "年入学的:";
treeView1.Nodes.Add(Tv);
AddSeTree(TrDateStr);

}
SqlDr.Close();
我是才鸟

111,125

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Creator Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧