a亚洲精品_精品国产91乱码一区二区三区_亚洲精品在线免费观看视频_欧美日韩亚洲国产综合_久久久久久久久久久成人_在线区

首頁 > 編程 > C# > 正文

C# 無限級分類的實現(xiàn)

2024-09-07 17:05:16
字體:
供稿:網(wǎng)友
數(shù)據(jù)庫表:CategoryInfo
字段名 類型
ciID int //記錄序號,自增量
ciName nvarchar(20) //分類名
ciParent int //父分類序號
ciLayer int //所處的層次
ciDescription nvarchar(200) //對分類的描述
分類的類設(shè)計
public class CategoryInfo
{
private int ciID;//分類ID
private string ciName;//分類名
private int ciParent;//分類的父分類ID
private string ciDescription;//分類描述
private int ciLayer;//分類所屬層次
//構(gòu)造函數(shù)
public CategoryInfo() { }
public CategoryInfo(int cID, string cName, int cParent, string cDescription, int cLayer)
{
this.ciID = cID;
this.ciName = cName;
this.ciParent = cParent;
this.ciDescription = cDescription;
this.ciLayer = cLayer;
}
//屬性
public int CategoryID
{
get{ return ciID;}
set { ciID = value;}
}
public string CategoryName
{
get{ return ciName;}
set { ciName = value; }
}
public int CategoryParent
{
get{ return ciParent;}
set { ciParent = value; }
}
public string CategoryDescription
{
get { return ciDescription; }
set { ciDescription = value; }
}
public int CategoryLayer
{
get { return ciLayer; }
set { ciLayer = value; }
}
}
獲取子分類的存儲過程
CREATE PROCEDURE [dbo].[category_getChild]
@cName nvarchar(20)
AS
BEGIN
DECLARE @tmpID int
SELECT @tmpID=ciID FROM CategoryInfo
WHERE RTRIM(ciName) = RTRIM(@cName)
if(@tmpID IS NOT NULL)
SELECT * FROM CategoryInfo
WHERE ciParent = @tmpID
ORDER BY ciLayer
END
獲取子分類的函數(shù)
public IList<CategoryInfo> GetChildCategories(IList<CategoryInfo> cInfos,string cName)
{
SqlConnection con = new SqlConnection(connectionString);
SqlCommand cmd = new SqlCommand("category_getChild", con);
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.Add(new SqlParameter(PARAM_CNAME, SqlDbType.NVarChar, 20));
cmd.Parameters[PARAM_CNAME].Value = cName;
IList<string> tmpNames = new List<string>(); //臨時存儲獲取的子
try
{
con.Open();
SqlDataReader reader = cmd.ExecuteReader();
if (reader.HasRows)
{
while (reader.Read())
{
CategoryInfo cInfo = new CategoryInfo(
(int)reader["ciID"],
reader["ciName"].ToString(),
(int)reader["ciParent"],
reader["ciDescription"].ToString(),
(int)reader["ciLayer"]
);
string tmpName = reader["ciName"].ToString();
cInfos.Add(cInfo);//添加獲取到的分類到cInfos
tmpNames.Add(tmpName);//添加獲取到的子分類名到tmpNames
}
}
}
catch
{
throw new ApplicationException("獲取分類出錯!");
}
finally
{
con.Close();
}
foreach(string c in tmpNames)
{
cInfos = GetChildCategories(cInfos,c); //遞歸運算。繼續(xù)獲取子分類
}
return cInfos;
}
說明:在該函數(shù)中,tmpNames如果換成是IList<CategoryInfo>,即它添加的元素與cInfos是一樣的時,如果要移除其中的一項,則cInfos中會同時移除一項。因為CategoryInfo是類,是引用類型的,而非值類型。所以tmpNames采用了string類型,以避免這個問題。
發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 久久久精品区 | 欧美成亚洲 | 国产传媒日韩欧美 | 午夜影院在线观看 | 中文字幕在线观看av | 亚洲国产成人在线 | 亚洲午夜视频在线观看 | 亚洲第一中文字幕 | 午夜视频网站 | 日本高清视频一区二区三区 | 黄色网址免费在线播放 | 日韩国产精品一区二区三区 | 精品一区二区在线观看 | 91久久久久久久久久久久久久久久 | 日韩av电影在线播放 | 日韩成人免费视频 | 国产精品一线二线三线 | 韩国精品 | 黄色毛片在线看 | 一级黄色av片 | 99精品欧美一区二区三区综合在线 | 免费精品视频在线观看 | 蜜桃视频麻豆女神沈芯语免费观看 | 在线看91 | 国产精品a久久久久 | 日韩一区欧美一区 | 国产精品久久久 | 人人干人人干 | 欧美嘿咻 | 成人a视频在线观看 | 日韩av在线不卡 | 日韩中文字幕在线观看 | 亚洲视频免费在线 | 久久精品欧美一区二区三区麻豆 | 色视频久久| 男女靠逼视频免费观看 | 91色电影| 午夜婷婷色 | 91精品国产91久久综合桃花 | 国产在线一区二区三区在线观看 | 午夜午夜精品一区二区三区文 |