征集无限分类例子 征集比较有效率的无限分类例子!!!!谢谢! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 namespace wxfj{ class Public_Fun { #region[公共变量] DataSet DS; DataTable DT; SQL_Link Link = new SQL_Link(); bool Tree_Node_P = false; #endregion #region[函数] [TreeView递归函数] #region [函数] [树型2级显示] public void Fun_Tree(TreeView TREE,SqlConnection Link_Conn) { DS = Link.SQL_Select("select * from Basic_Bm", Link_Conn); DT = DS.Tables[0]; if (Tree_Node_P == false) { foreach (DataRow DR in DT.Rows) { if (DR.ItemArray[1].ToString() == "0") { TreeNode TN = new TreeNode(); TN.Text = DR.ItemArray[0].ToString(); TREE.Nodes.Add(TN); } } Tree_Node_P = true; } foreach (DataRow DR_2 in DT.Rows) { foreach (TreeNode TN_2 in TREE.Nodes) { if (DR_2.ItemArray[1].ToString() == TN_2.Text) { TreeNode TN_3 = new TreeNode(); TN_3.Text = DR_2.ItemArray[0].ToString(); TN_2.Nodes.Add(TN_3); Fun_Tree_2(TN_3); } } } } #endregion #region [函数] [树型>3级递归] public void Fun_Tree_2(TreeNode T_Name) { foreach (DataRow DR_2 in DT.Rows) { if (DR_2.ItemArray[1].ToString() == T_Name.Text) { TreeNode TN_3 = new TreeNode(); TN_3.Text = DR_2.ItemArray[0].ToString(); T_Name.Nodes.Add(TN_3); Fun_Tree_2(TN_3); } } } }} 用TreeView来做的: protected void BindTree() { TreeNode node = new TreeNode(); //这里是创建一个根节点,就是dome中看到的Root node.Text = "Root"; CreateChildTree(node, 0); TreeView1.Nodes.Add(node); } protected void CreateChildTree(TreeNode _parentNode, int _parentID) { using (SqlConnection _conn = new SqlConnection(music.constr)) { SqlCommand _comm = new SqlCommand(); string sql = "select * from menu where rootid=@rootid"; _comm.Parameters.Add("@rootid", SqlDbType.Int).Value = _parentID; _comm.CommandText = sql; _comm.Connection = _conn; _conn.Open(); using (SqlDataReader r = _comm.ExecuteReader()) { while (r.Read()) { TreeNode _node = new TreeNode(r["title"].ToString()); CreateChildTree(_node, (int)r["ID"]); //递归出子节点 _parentNode.ChildNodes.Add(_node); } } } } 字符串处理,不会就不要进来了,嘿嘿!(答者有分,不够加分,多劳多得) 正则表达式如何不匹配左右对 用户控件的问题? .NET Remoting 异步调用与CallContext问题 C#如何让几个人同时操作同一个SQL server 2000数据库同一个表而不发生冲突 触摸屏 开发 反射问题 listbox排序? listview选中项的问题 关于在程序中创建,备份,恢复数据库的问题。 关于公共语言运行库 关于怎么获取一个值的类型!!
{
class Public_Fun
{
#region[公共变量]
DataSet DS;
DataTable DT;
SQL_Link Link = new SQL_Link();
bool Tree_Node_P = false;
#endregion #region[函数] [TreeView递归函数] #region [函数] [树型2级显示]
public void Fun_Tree(TreeView TREE,SqlConnection Link_Conn)
{
DS = Link.SQL_Select("select * from Basic_Bm", Link_Conn);
DT = DS.Tables[0];
if (Tree_Node_P == false)
{
foreach (DataRow DR in DT.Rows)
{
if (DR.ItemArray[1].ToString() == "0") {
TreeNode TN = new TreeNode();
TN.Text = DR.ItemArray[0].ToString();
TREE.Nodes.Add(TN);
} }
Tree_Node_P = true;
} foreach (DataRow DR_2 in DT.Rows)
{
foreach (TreeNode TN_2 in TREE.Nodes) {
if (DR_2.ItemArray[1].ToString() == TN_2.Text)
{
TreeNode TN_3 = new TreeNode();
TN_3.Text = DR_2.ItemArray[0].ToString(); TN_2.Nodes.Add(TN_3);
Fun_Tree_2(TN_3);
}
}
}
}
#endregion #region [函数] [树型>3级递归]
public void Fun_Tree_2(TreeNode T_Name)
{
foreach (DataRow DR_2 in DT.Rows)
{
if (DR_2.ItemArray[1].ToString() == T_Name.Text)
{
TreeNode TN_3 = new TreeNode();
TN_3.Text = DR_2.ItemArray[0].ToString();
T_Name.Nodes.Add(TN_3);
Fun_Tree_2(TN_3);
}
}
}
}
}
protected void BindTree()
{
TreeNode node = new TreeNode(); //这里是创建一个根节点,就是dome中看到的Root
node.Text = "Root";
CreateChildTree(node, 0);
TreeView1.Nodes.Add(node);
} protected void CreateChildTree(TreeNode _parentNode, int _parentID)
{
using (SqlConnection _conn = new SqlConnection(music.constr))
{
SqlCommand _comm = new SqlCommand();
string sql = "select * from menu where rootid=@rootid";
_comm.Parameters.Add("@rootid", SqlDbType.Int).Value = _parentID;
_comm.CommandText = sql;
_comm.Connection = _conn;
_conn.Open();
using (SqlDataReader r = _comm.ExecuteReader())
{
while (r.Read())
{
TreeNode _node = new TreeNode(r["title"].ToString());
CreateChildTree(_node, (int)r["ID"]); //递归出子节点
_parentNode.ChildNodes.Add(_node);
}
}
}
}