亚洲日本一区二区三区_成人免费网站在线观看_精品久久久网站_精品一区二区三区在线播放视频_日本黄视频网站_九九色在线观看_色综合888

快消品貨源批發(fā)市場
快消品貨源分銷平臺
 
 
當(dāng)前位置: 貨源批發(fā)網(wǎng) » 網(wǎng)商學(xué)院 » 獨立商城 » SQL Server 2000層次數(shù)據(jù)查詢的實現(xiàn)方法

SQL Server 2000層次數(shù)據(jù)查詢的實現(xiàn)方法

放大字體  縮小字體 發(fā)布日期:2025-10-28 03:07:43  來源:電商聯(lián)盟  作者:樂發(fā)網(wǎng)  瀏覽次數(shù):17

以C#為前端,SQL Server 2000層次數(shù)據(jù)查詢是如何實現(xiàn)的呢?本文我們主要就介紹這部分內(nèi)容,接下來就讓我們一起來了解一下這一過程吧。
//層次數(shù)據(jù)實體
public class ComLevelDataEntity
{
public ComLevelDataEntity()
{
searchLevel = 0;
startWithRoot = true;
dataObjectAlias = "t";
}
private int searchLevel;
/// <summary>
/// 查詢層次
/// </summary>
public int SearchLevel
{
get { return searchLevel; }
set { searchLevel = value; }
}

private string dataObjectAlias;
/// <summary>
/// 別名
/// </summary>
public string DataObjectAlias
{
get { return dataObjectAlias; }
set { dataObjectAlias = value; }
}
private string protasis;
/// <summary>
/// 條件從句
/// </summary>
public string Protasis
{
get
{
return string.IsNullOrEmpty(protasis) ? string.Empty : string.Concat(" and ", protasis);
}
set { protasis = value; }
}

private bool startWithRoot;
/// <summary>
/// 整樹搜索
/// </summary>
public bool StartWithRoot
{
get { return startWithRoot; }
set { startWithRoot = value; }
}
private string dataObjectName;
/// <summary>
/// 數(shù)據(jù)對象名稱
/// </summary>
public string DataObjectName
{
get { return dataObjectName; }
set { dataObjectName = value; }
}

private int cascadeLevel;
/// <summary>
/// 層級
/// </summary>
public int CascadeLevel
{
get { return cascadeLevel; }
set { cascadeLevel = value; }
}

private string displayFieldName;
/// <summary>
/// 顯示字段名稱
/// </summary>
public string DisplayFieldName
{
get { return displayFieldName; }
set { displayFieldName = value; }
}

private string keyFieldName;
/// <summary>
/// 鍵值字段名稱
/// </summary>
public string KeyFieldName
{
get { return keyFieldName; }
set { keyFieldName = value; }
}

private string displayFieldValue;
/// <summary>
/// 顯示字段值
/// </summary>
public string DisplayFieldValue
{
get { return displayFieldValue; }
set { displayFieldValue = value; }
}

private string keyFieldValue;
/// <summary>
/// 鍵值字段值
/// </summary>
public string KeyFieldValue
{
get { return keyFieldValue; }
set { keyFieldValue = value; }
}

private string levelFieldName;
/// <summary>
/// 層次字段名稱
/// </summary>
public string LevelFieldName
{
get { return levelFieldName; }
set { levelFieldName = value; }
}

private string levelFieldValue;
/// <summary>
/// 層次字段值
/// </summary>
public string LevelFieldValue
{
get { return levelFieldValue; }
set { levelFieldValue = value; }
}
}
//sqlserver2000存儲過程
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[sp_gettreedata]') and OBJECTPROPERTY(id, N'IsProcedure') = 1)
drop procedure [dbo].[sp_gettreedata]
GO

SET QUOTED_IDENTIFIER ON
GO

SET ANSI_NULLS ON
GO

CREATE PROCEDURE [dbo].[sp_gettreedata]
(@table_name nvarchar(50), @id nvarchar(50), @name nvarchar(50), @parent_id nvarchar(50), @startId nvarchar(50), @maxlevel int)
AS
declare @v_id nvarchar(50)
declare @v_level int
declare @sql nvarchar(500)
declare @v_maxlevel int
begin
create table #temp (id nvarchar(50),name nvarchar(50),parent_id nvarchar(50))
create table #t1 (id nvarchar(50),name nvarchar(50),parent_id nvarchar(50),level int)
delete from com_temp
set @sql='insert into #temp select '+@id+','+@name+','+@parent_id +' from '+@table_name
exec sp_executesql @sql

set @v_level=1
set @v_id=@startId
set @v_maxlevel = @maxlevel
insert #t1 select a.id,a.name,a.parent_id,@v_level from #temp a where a.id=@v_id
while @@rowcount>0
begin
set @v_level=@v_level+1
insert #t1 select a.id,a.name,a.parent_id,@v_level
from #temp a where a.parent_id in
(select id from #t1 where level=@v_level-1)
end
insert into Com_TEMP select a.level,a.id,a.name,a.parent_id,b.name parent_name
from #t1 a left outer join #temp b
on a.parent_id = b.id
where a.level <= @maxlevel
order by a.level

select * from Com_TEMP order by dbo.f_getidpath(id)
end

GO
SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS ON
GO
//sqlserver2000函數(shù)
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[f_getidpath]') and xtype in (N'FN', N'IF', N'TF'))
drop function [dbo].[f_getidpath]
GO

SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS ON
GO

CREATE function f_getidpath(@id char(36))
returns varchar(8000)
as
begin
declare @re varchar(8000),@pid char(36)
set @re=@id
select @pid=parent_id from com_temp where id=@id
while @@rowcount> 0
select @re=@pid + '.'+ @re,@pid=parent_id from com_temp where id=@pid
return(@re)
end

GO
SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS ON
GO
//數(shù)據(jù)訪問層方法
public ComLevelDataEntity[] PrepareHierarchyData(ComLevelDataEntity entity)
{
System.Data.SqlClient.SqlParameter[] parameters = new System.Data.SqlClient.SqlParameter[6];
parameters[0] = new SqlParameter();
parameters[0].ParameterName = "@table_name";
parameters[0].Size = 50;
parameters[0].SqlDbType = System.Data.SqlDbType.VarChar;
parameters[1] = new SqlParameter();
parameters[1].ParameterName = "@id";
parameters[1].Size = 50;
parameters[1].SqlDbType = System.Data.SqlDbType.VarChar;
parameters[2] = new SqlParameter();
parameters[2].ParameterName = "@name";
parameters[2].Size = 50;
parameters[2].SqlDbType = System.Data.SqlDbType.VarChar;
parameters[3] = new SqlParameter();
parameters[3].ParameterName = "@parent_id";
parameters[3].Size = 50;
parameters[3].SqlDbType = System.Data.SqlDbType.VarChar;
parameters[4] = new SqlParameter();
parameters[4].ParameterName = "@startId";
parameters[4].Size = 50;
parameters[4].SqlDbType = System.Data.SqlDbType.VarChar;
parameters[5] = new SqlParameter();
parameters[5].ParameterName = "@maxlevel";
parameters[5].SqlDbType = System.Data.SqlDbType.Int;
string spName = "sp_gettreedata";
if (entity.SearchLevel <= 0)
{
parameters[0].Value = entity.DataObjectName;
parameters[1].Value = entity.KeyFieldName;
parameters[2].Value = entity.DisplayFieldName;
parameters[3].Value = entity.LevelFieldName;
parameters[4].Value = entity.KeyFieldValue;
parameters[5].Value = 100;
}
else
{
parameters[0].Value = entity.DataObjectName;
parameters[1].Value = entity.KeyFieldName;
parameters[2].Value = entity.DisplayFieldName;
parameters[3].Value = entity.LevelFieldName;
parameters[4].Value = entity.KeyFieldValue;
parameters[5].Value = entity.SearchLevel;
}
List<ComLevelDataEntity> results = new List<ComLevelDataEntity>();
IDbConnection connection = IDALProvider.IDAL.PopConnection();
IDataReader sqlReader = IDALProvider.IDAL.ExecuteReader(connection,spName, parameters);
while (sqlReader.Read())
{
ComLevelDataEntity result = new ComLevelDataEntity();
if (!sqlReader.IsDBNull(0))
result.CascadeLevel = (int)sqlReader.GetInt32(0);
if (!sqlReader.IsDBNull(1))
result.KeyFieldValue = sqlReader.GetString(1);
if (!sqlReader.IsDBNull(2))
result.DisplayFieldValue = sqlReader.GetString(2);
if (!sqlReader.IsDBNull(3))
result.LevelFieldValue = sqlReader.GetString(3);
result.DataObjectName = entity.DataObjectName;
result.DisplayFieldName = entity.DisplayFieldName;
result.LevelFieldName = entity.LevelFieldName;
result.KeyFieldName = entity.KeyFieldName;
results.Add(result);
}
sqlReader.Close();
IDALProvider.IDAL.PushConnection(connection);
return results.ToArray();
}
//前端調(diào)用代碼
ComLevelDataEntity entity = new ComLevelDataEntity();
entity.DataObjectName = "COM_DEPART";
entity.DataObjectAlias = "t";
entity.StartWithRoot = true;
entity.KeyFieldName = "id";
entity.LevelFieldName = "parent_id";
entity.DisplayFieldName = "name";
entity.KeyFieldValue = SystemLogic.CurrentUser.DATA_ORGANISE_ID;
ComLevelDataEntity[] results = IDALProvider.IDAL.PrepareHierarchyData(entity);
this.tvTree.DataSource = results;
this.tvTree.DataBind();
關(guān)于以C#為前端,SQL Server 2000層次數(shù)據(jù)查詢的實現(xiàn)方法就介紹到這里了,希望本次的介紹能夠?qū)δ兴斋@!

快消品貨源網(wǎng)提供超市貨源信息,超市采購進(jìn)貨渠道。超市進(jìn)貨網(wǎng)提供成都食品批發(fā),日用百貨批發(fā)信息、微信淘寶網(wǎng)店超市采購信息和超市加盟信息.打造國內(nèi)超市采購商與批發(fā)市場供應(yīng)廠商搭建網(wǎng)上批發(fā)市場平臺,是全國批發(fā)市場行業(yè)中電子商務(wù)權(quán)威性網(wǎng)站。

本文內(nèi)容整合網(wǎng)站:百度百科知乎淘寶平臺規(guī)則

本文來源: SQL Server 2000層次數(shù)據(jù)查詢的實現(xiàn)方法

分享與收藏:  網(wǎng)商學(xué)院搜索  告訴好友  關(guān)閉窗口  打印本文 本文關(guān)鍵字:
 
更多..資源下載
獨立商城圖文
獨立商城網(wǎng)商學(xué)院推薦
獨立商城點擊排行
 
手機(jī)版 手機(jī)掃描訪問
亚洲日本一区二区三区_成人免费网站在线观看_精品久久久网站_精品一区二区三区在线播放视频_日本黄视频网站_九九色在线观看_色综合888
久久精品国产精品亚洲精品| 99国内精品久久| 日韩欧美国产高清| 日本电影欧美片| 成人激情免费视频| 成人国产免费视频| 国产91精品一区二区麻豆亚洲| 免费一级欧美片在线观看| 日韩专区欧美专区| 婷婷中文字幕一区三区| 亚洲综合色丁香婷婷六月图片| 国产精品成人一区二区三区夜夜夜| 久久综合狠狠综合久久激情| 日韩视频一区二区| 久久综合九色综合97婷婷女人 | 国产美女一区二区| 激情久久五月天| 激情欧美一区二区三区在线观看| 经典三级一区二区| 懂色av一区二区三区免费看| 国产精品一区三区| 99视频在线精品| 欧洲另类一二三四区| 欧美日韩性生活| 日韩精品中文字幕在线一区| 2020国产精品自拍| 中文字幕欧美一| 天天av天天翘天天综合网 | 亚洲成人av在线电影| 亚洲观看高清完整版在线观看| 亚洲成人免费在线观看| 久久se精品一区精品二区| 国产精品1区2区3区在线观看| 99视频精品在线| 欧美日韩在线三区| 久久久久国色av免费看影院| 中文字幕乱码亚洲精品一区| 一区二区三区加勒比av| 日本欧美一区二区在线观看| 国产69精品久久久久毛片| 色系网站成人免费| 久久影视一区二区| 一区二区三区在线视频免费| 久久爱www久久做| 日本高清不卡视频| 国产亚洲午夜高清国产拍精品 | 午夜视频在线观看一区二区 | 5858s免费视频成人| 欧美激情一区二区在线| 亚洲另类色综合网站| 免费看黄色91| 欧美自拍偷拍一区| 国产欧美视频在线观看| 丝袜a∨在线一区二区三区不卡| 国产不卡视频一区| 日韩欧美国产精品一区| 亚洲综合色视频| 99国产精品久久久久久久久久久| 欧美成人一区二区三区| 亚洲a一区二区| 色先锋久久av资源部| 中文字幕不卡在线| 一区二区国产盗摄色噜噜| 国产一区二区三区美女| 欧美乱熟臀69xxxxxx| 亚洲色图20p| 国产·精品毛片| 久久婷婷久久一区二区三区| 日本最新不卡在线| 5566中文字幕一区二区电影| 亚洲猫色日本管| 91色婷婷久久久久合中文| 国产亚洲综合av| 国产精品一区不卡| 久久久久久97三级| 国产成人亚洲精品青草天美| 精品国产青草久久久久福利| 日韩av不卡在线观看| 91麻豆精品国产自产在线观看一区 | 精品国产乱码久久久久久老虎| 亚洲国产va精品久久久不卡综合| 色偷偷一区二区三区| **网站欧美大片在线观看| 国产精品456| 国产精品视频你懂的| 岛国av在线一区| 欧美国产精品中文字幕| 成人亚洲一区二区一| 亚洲国产精品精华液ab| 岛国一区二区在线观看| 国产精品二区一区二区aⅴ污介绍| 国产精品资源在线| 亚洲国产精品成人综合色在线婷婷| 国产精品18久久久| 国产精品日产欧美久久久久| 成人蜜臀av电影| 亚洲精品国产一区二区精华液| 在线精品视频一区二区三四| 亚洲国产日韩a在线播放性色| 欧美亚州韩日在线看免费版国语版| 亚洲午夜av在线| 6080日韩午夜伦伦午夜伦| 韩国三级中文字幕hd久久精品| 国产午夜亚洲精品午夜鲁丝片 | 日本亚洲最大的色成网站www| 欧美高清www午色夜在线视频| 免费在线看成人av| 国产欧美一区二区在线观看| 不卡视频在线看| 国产精品情趣视频| 欧美三级电影在线看| 香蕉成人啪国产精品视频综合网| 日韩精品一区二区三区蜜臀| 国产曰批免费观看久久久| 国产精品短视频| 日韩免费高清视频| 99久久99久久精品免费看蜜桃| 亚洲成人tv网| 国产精品久久99| 91精品国产入口| www.66久久| 天堂va蜜桃一区二区三区 | 亚洲高清免费观看高清完整版在线观看| 91精品国产综合久久久久久久久久| 久久国产福利国产秒拍| 中文字幕亚洲在| 欧美一区二区三区四区久久 | 一本大道久久a久久精二百| 亚洲国产精品久久人人爱蜜臀| 欧美大黄免费观看| 成人app在线观看| 免费观看成人av| 亚洲欧美日韩国产中文在线| 日韩一区和二区| 91一区二区三区在线观看| 麻豆精品蜜桃视频网站| 亚洲日本青草视频在线怡红院| 日韩午夜三级在线| 91香蕉视频在线| 国产成人亚洲综合色影视| 视频一区国产视频| 一区二区三区欧美日韩| 久久久久久久久岛国免费| 色系网站成人免费| 大胆亚洲人体视频| 国产精品夜夜嗨| 久久99国产精品久久99| 一区二区三区小说| 中文字幕一区二区三区色视频| 日韩欧美在线观看一区二区三区| 99精品国产一区二区三区不卡| 国产精品1区2区| 久久99精品一区二区三区三区| 亚洲一二三区在线观看| 欧美激情综合网| 国产午夜久久久久| 国产亚洲成av人在线观看导航| 精品乱人伦小说| 日韩一区和二区| 91精品国产麻豆国产自产在线| 亚洲蜜臀av乱码久久精品蜜桃| 久久久久久久免费视频了| 26uuu色噜噜精品一区二区| 91精品国产综合久久精品| 午夜婷婷国产麻豆精品| 国产成人免费视频精品含羞草妖精 | 国产一区二区91| 日韩avvvv在线播放| 天堂av在线一区| 亚洲国产日韩综合久久精品| ...av二区三区久久精品| 国产精品美女久久久久久久久久久| 久久综合狠狠综合| 欧美国产日韩亚洲一区| 精品欧美一区二区三区精品久久| 日韩区在线观看| 国产欧美视频在线观看| 成人欧美一区二区三区| 国产精品久久久久久久久免费丝袜| 26uuu色噜噜精品一区二区| 久久久午夜精品理论片中文字幕| 久久精品在线免费观看| 国产精品私人自拍| 亚洲人成网站在线| 亚洲国产另类精品专区| 日产国产欧美视频一区精品| 久久狠狠亚洲综合| 岛国精品在线播放| 欧美影院一区二区| 日韩欧美中文一区二区| 欧美精品一区二区精品网| 国产欧美一区二区精品仙草咪 | 久久久www成人免费毛片麻豆| 久久亚洲精品国产精品紫薇| 国产无一区二区| 一区二区三区中文字幕| 另类综合日韩欧美亚洲| 亚洲成av人片| 国产老肥熟一区二区三区| 日本大胆欧美人术艺术动态|