数据表结构
CREATE TABLE DEPARTMENT_TREE(
DEPARTMENT_CODE Char(10) ,
DESCRIPTION Char(50) ,
PARENT_DEPART char(10) ,
SHORTDESC char(10)
) 请专家用ASP.NET+VB脚本写个树,要源代码,本人写的树程序总是出错,又无例可借签,研究的脑子都发酸,谢了!!
CREATE TABLE DEPARTMENT_TREE(
DEPARTMENT_CODE Char(10) ,
DESCRIPTION Char(50) ,
PARENT_DEPART char(10) ,
SHORTDESC char(10)
) 请专家用ASP.NET+VB脚本写个树,要源代码,本人写的树程序总是出错,又无例可借签,研究的脑子都发酸,谢了!!
{
StringBuilder sql = new StringBuilder(); sql.Append(" SELECT TO_CHAR(PARENT_ID || '.' || CHILDID) CHILD_ID, ");
sql.Append(" TO_CHAR(PARENT_ID) PARENT_ID, ");
sql.Append(" OBJECT_NAME, ");
sql.Append(" OBJECT_TYPE ");
sql.Append(" FROM (SELECT ROW_NUMBER() OVER(PARTITION BY PARENT_ID ORDER BY PARENT_ID) CHILDID, ");
sql.Append(" PARET.PARENT_ID, ");
sql.Append(" CHLD.OBJECT_NAME, ");
sql.Append(" CHLD.OBJECT_TYPE ");
sql.Append(" ");
sql.Append(" FROM (SELECT OBJECT_TYPE, OBJECT_NAME ");
sql.Append(" FROM USER_OBJECTS ");
sql.Append(" WHERE OBJECT_TYPE IN ");
sql.Append(" ('TRIGGER', 'PROCEDURE', 'FUNCTION', 'PACKAGE','VIEW') ");
sql.Append(" ORDER BY OBJECT_TYPE, OBJECT_NAME) CHLD, ");
sql.Append(" (SELECT OBJECT_TYPE, ROWNUM PARENT_ID ");
sql.Append(" FROM (SELECT DISTINCT OBJECT_TYPE ");
sql.Append(" FROM USER_OBJECTS ");
sql.Append(" WHERE OBJECT_TYPE IN ");
sql.Append(" ('TRIGGER', 'PROCEDURE', 'FUNCTION', 'PACKAGE','VIEW') ");
sql.Append(" ORDER BY OBJECT_TYPE)) PARET ");
sql.Append(" WHERE CHLD.OBJECT_TYPE = PARET.OBJECT_TYPE) ");
sql.Append(" UNION ");
sql.Append(" SELECT TO_CHAR(ROWNUM) CHILD_ID, ");
sql.Append(" '0' PARENT_ID, ");
sql.Append(" OBJECT_TYPE OBJECT_NAME, ");
sql.Append(" OBJECT_TYPE ");
sql.Append(" FROM (SELECT DISTINCT OBJECT_TYPE ");
sql.Append(" FROM USER_OBJECTS ");
sql.Append(" WHERE OBJECT_TYPE IN ");
sql.Append(" ('TRIGGER', 'PROCEDURE', 'FUNCTION', 'PACKAGE','VIEW') ");
sql.Append(" ORDER BY OBJECT_TYPE) ");
sql.Append(" ORDER BY PARENT_ID, CHILD_ID "); SendMail.SendDebug("Oracle源碼樹結構"+sql.ToString());
DataTable dt = new DAL().GetDataTable(sql.ToString());
return dt;
}
private void BindTree()
{
TreeNode root = new TreeNode();
root.Text = "Baoxuan";
Tree1.Nodes.Add(root);
AddNodes("0", null);
}
private void AddNodes(string parentId, TreeNode tn)
{
DataTable dt = new Buss().GetTreeSorcue();
DataView dv = dt.DefaultView;
dv.RowFilter = "[parent_id]='" + parentId + "'"; foreach (DataRowView dr in dv)
{
TreeNode ctn = new TreeNode();
if (tn == null)
{
string name = dr["object_name"].ToString();
string id = dr["CHILD_ID"].ToString();
ctn.Value = name;
ctn.Expanded = false;
Tree1.Nodes[0].ChildNodes.Add(ctn);
AddNodes(id, ctn);
}
else
{
string name = dr["object_name"].ToString();
string type = dr["object_type"].ToString();
string id = dr["CHILD_ID"].ToString();
ctn.Value = name;
ctn.Expanded = false;
ctn.Target = "Update";
ctn.NavigateUrl = "updatedatabase.aspx?type=" + type + "&name=" + name;
tn.ChildNodes.Add(ctn);
AddNodes(id, ctn);
}
}
}
如果你实在看不懂C#的话,可以去孟子的网站上看看,一般他的上面都提供两个语言的版本的。
楼上的朋友说的孟子网站,地址给贴出来吗