初学不是很懂
一个目录数的生成数据表的结构是这样的:
数据库表结构如下,我要生成目录树.
//----------------数据层-----------------------
ID RegCode RegName ParentID
1 0 根类别 0
2 100 内资企业 1
3 110 国有企业 2
4 120 集体企业 2
5 130 股份合作企业 2
6 140 联营企业 2
7 141 国有联营企业 6
8 142 集体联营企业 6
9 143 国有与集体联营企业 6
10 149 其他联营企业 6
11 150 有限责任公司 2
12 151 国有独资公司 11
13 159 其他有限责任公司 11
14 160 股份有限公司 2
15 170 私营企业 2
16 171 私营独资企业 15
17 172 私营合伙企业 15
18 173 私营有限责任公司 15
19 174 私营股份有限公司 15
20 190 其他企业 2
21 200 港、澳、台商投资企业 1
22 210 合资经营企业(港或澳、台资) 21
23 220 合作经营企业(港或澳、台资) 21
24 230 港、澳、台商独资经营企业 21
25 240 港、澳、台商投资股份有限公司 21
26 300 外商投资企业 1
27 310 中外合资经营企业 26
28 320 中外合作经营企业 26
29 330 外资企业 26
30 340 外商投资股份有限公司 26
//----------------存储过程------------------------
CREATE PROCEDURE GetRegType AS
SELECT * FROM ReGType
WHERE ParentID<> 0
ORDER BY RegCode
GO
//----------------业务类----------------------
public SqlDataReader GetRegType()
{
SqlConnection myConnection = new SqlConnection(ConfigurationSettings.AppSettings["ConnectionString"]);
SqlCommand myCommand = new SqlCommand("GetRegType",myConnection);
myCommand.CommandType = CommandType.StoredProcedure;
myConnection.Open();
SqlDataReader result = myCommand.ExecuteReader(CommandBehavior.CloseConnection);
while (reslut) do
{
??string caseSwitch = result.GetSqlString("RegCode");
if (caseSwitch.substring(1,1) <> "0" & caseSwitch.substring(2,1) =="0")
?? caseSwitch("RegName") = " |--"+ caseSwitch("RegName");
else if (caseSwitch.substring(1,1) <> "0" & caseSwitch.substring(2,1) <>"0")
?? caseSwitch("RegName") = "|--"+ caseSwitch("RegName");
}
return result;
}
//---------------------表示层-----------------------------
*类 obj = new 类;
display(Repeater控件).Datasource = obj.GetRegtype();
display.DataTextField = "RegName";
display.DataValueField = "ID";
display.Databind();
这样可以实现吗?我主要是那个类不知道怎么写,主要的思想是看那个每条result记录的RegCode字段等于0的位置来判别是大类,小类还是小小类
先问这个吧,分数也不多.
--------------------编程问答-------------------- 先取出父类为0的parent_id为0的肯定是第一类,然后一级的根据parent_id去取数据就是了 --------------------编程问答-------------------- 我已经解决了 谢谢
补充:.NET技术 , C#