用递归生成一个treeView,数据库超时,大家帮忙看看该怎么办啊?
我的数据库设计是:
menuid text url refid
menuid存放菜单编号,text存放菜单显示的文字,url是他的目标地址,refid是它父菜单的编号
大家看看我的程序该怎么改才行呢?
protected SqlDataReader getMenuReader(string fatherID) {
StringBuilder sqlStr = new StringBuilder();
if (string.Empty.Equals(fatherID.ToString()))
sqlStr.Append("select Text,url,pageId, MenuId from exjmenu where refmenuid is null");
else
sqlStr.Append ( "select Text,url,pageId,MenuId from exjmenu where refmenuid=" + Convert.ToString ( fatherID ) );
SqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings["gyweb"].ToString());
SqlCommand command = new SqlCommand(sqlStr.ToString(), conn);
conn.Open();
SqlDataReader reader = command.ExecuteReader();
return reader;
}
protected void myGetNode(string fatherID, TreeNode rootNode)
{
SqlDataReader myReader = getMenuReader(fatherID);
while (myReader.Read())
{
TreeNode newNode = new TreeNode();
newNode.Text = myReader[0].ToString();
newNode.NavigateUrl = myReader[1].ToString()+"?pageid="+myReader[2];
newNode.Target = "ifr";
if (getMenuReader(myReader[2].ToString()).Read()) myGetNode(myReader[2].ToString(), newNode);
rootNode.ChildNodes.Add(newNode);
}
myReader.Close ( );
myReader.Dispose ( );
}
这个程序开始用得好好的,今天下午突然就不行了,老是显示
Timeout expired. The timeout period elapsed prior to obtaining a connection from the pool. This may have occurred because all pooled connections were in use and max pool size was reached.
我一看SQL Server后台,一共开有299个进程。不知道怎么改才行。大虾帮忙指点一下