征集无限分类例子 征集比较有效率的无限分类例子!!!!谢谢! 解决方案 » 免费领取超大流量手机卡,每月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); } } } } 怎么在抽象子类中重写抽象方法呢? C#发贴器都用到什么? 弱弱地问个C#借口的问题。。 RichTextBox中输入空格时, 水平滚动条为什么不能出现?(急, 高分求救) 想做一个无窗体的后台应用程序,不知道该怎么实现? 有人有用C#程序编的gantt chart图吗? C#如何监控桌面新打开窗口! DataTable 中,如何引用已删除的行?就是状态为 Deleted的行 PicBox的问题~请高手帮我解决一下~小弟在这里败谢了 关于SMPP协议 关于公共语言运行库 关于怎么获取一个值的类型!!
{
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);
}
}
}
}