再提treeview问题
开贴再提问????????
运行提示:超时时间已到。超时时间已到,但是尚未从池中获取连接。出现这种情况可能是因为所有池连接均在使用,并且达到了最大池大小。
表结构如下:
ID char 10
DETAIL varchar50
NAME varchar50
以下是我最新的代码:
using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Data.Sql;
using System.Data.SqlClient;
using System.Configuration;
public partial class Default9 : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
AddTreeView(1, (TreeNode)null);
}
}
protected void AddTreeView(Int64 ID, TreeNode tn)
{
string CustomerDataConnectionString = System.Configuration.ConfigurationSettings.AppSettings[ "ConnectionString "];
SqlConnection objConn = new SqlConnection(CustomerDataConnectionString);
String strCmd = "select DETAIL,NAME from AAAA where ID= " + ID;
SqlCommand objCmd = new SqlCommand();
objCmd.Connection = objConn;
objConn.Open();
objCmd.CommandText = strCmd;
SqlDataReader objDR = objCmd.ExecuteReader();
while (objDR.Read())
{
if (tn == null)
{
TreeNode myNode = new TreeNode();
myNode.Text = objDR[ "DETAIL "].ToString().Trim();
myNode.Value = objDR[ "NAME "].ToString().Trim();
TreeView1.Nodes.Add(myNode);
AddTreeView(Int64.Parse(objDR[ "DETAIL "].ToString().Trim()), (TreeNode)myNode);
}
else
{
TreeNode myNode1 = new TreeNode();
myNode1.Text = objDR[ "DETAIL "].ToString().Trim();
myNode1.Value = objDR[ "NAME "].ToString().Trim();
tn.ChildNodes.Add(myNode1);
AddTreeView(Int64.Parse(objDR[ "DETAIL "].ToString().Trim()), (TreeNode)myNode1);
}
}
objDR.Close();
objConn.Close();
}
}
[解决办法]
楼主使用SqlDataReader时,在建立树的过程中,应用程序一至与数据库保持着连接在,由于网络不稳定所以会导致程序“不稳定,时好时坏”;
建议楼主先将数据取出放到Dataset中,在本地建立树,应该可以避免这种问题!