欧美日韩一区二区视频在线_欧美破处大片在线视频_午夜日韩在线_亚洲高清免费_午夜在线a亚洲v天堂网2018_亚洲午夜久久久久久尤物_国产精品www._久久亚洲一区_亚洲美女色禁图_久久人人精品

快消品貨源批發市場
快消品貨源分銷平臺
 
 
當前位置: 貨源批發網 » 網商學院 » 獨立商城 » SQL Server 2000層次數據查詢的實現方法

SQL Server 2000層次數據查詢的實現方法

放大字體  縮小字體 發布日期:2025-10-28 03:07:43  來源:電商聯盟  作者:樂發網  瀏覽次數:17

以C#為前端,SQL Server 2000層次數據查詢是如何實現的呢?本文我們主要就介紹這部分內容,接下來就讓我們一起來了解一下這一過程吧。
//層次數據實體
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>
/// 數據對象名稱
/// </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函數
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
//數據訪問層方法
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();
}
//前端調用代碼
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();
關于以C#為前端,SQL Server 2000層次數據查詢的實現方法就介紹到這里了,希望本次的介紹能夠對您有所收獲!

快消品貨源網提供超市貨源信息,超市采購進貨渠道。超市進貨網提供成都食品批發,日用百貨批發信息、微信淘寶網店超市采購信息和超市加盟信息.打造國內超市采購商與批發市場供應廠商搭建網上批發市場平臺,是全國批發市場行業中電子商務權威性網站。

本文內容整合網站:百度百科知乎淘寶平臺規則

本文來源: SQL Server 2000層次數據查詢的實現方法

分享與收藏:  網商學院搜索  告訴好友  關閉窗口  打印本文 本文關鍵字:
 
更多..資源下載
獨立商城圖文
獨立商城網商學院推薦
獨立商城點擊排行
 
手機版 手機掃描訪問
欧美日韩一区二区视频在线_欧美破处大片在线视频_午夜日韩在线_亚洲高清免费_午夜在线a亚洲v天堂网2018_亚洲午夜久久久久久尤物_国产精品www._久久亚洲一区_亚洲美女色禁图_久久人人精品
在线 亚洲欧美在线综合一区| 国产精品伦理在线| 欧美福利一区二区| wwwwxxxxx欧美| 国产精品激情偷乱一区二区∴| 久久成人18免费观看| 美女在线一区二区| 99久久久免费精品国产一区二区| 色综合中文字幕| 国产精品视频久久一区| 欧美亚洲一区二区在线| 久久综合色8888| 一区二区三区欧美亚洲| 久久精品免费观看| 欧美激情综合| 色欧美日韩亚洲| 久久免费美女视频| 天天亚洲美女在线视频| 国产成人自拍在线| 国产日韩欧美高清免费| 91精品国产色综合久久不卡蜜臀| 欧美国产一区在线| 国产美女在线精品| 国产成人在线观看| 日韩视频三区| 欧美一区二区在线免费观看| 亚洲另类在线一区| 波多野结衣亚洲一区| 日本丶国产丶欧美色综合| 欧美激情一区三区| 国产精品原创巨作av| 国产精品美女久久久浪潮软件| 欧美第一区第二区| 久久爱另类一区二区小说| 狠狠色综合网| 精品久久久久久综合日本欧美 | 欧美不卡一区| 亚洲一级二级三级在线免费观看| 国产成人精品一区二区三区网站观看| 亚洲裸体俱乐部裸体舞表演av| 日韩写真欧美这视频| 蜜臀91精品一区二区三区| 夜夜嗨一区二区三区| 欧美国产欧美综合| 成人国产亚洲欧美成人综合网| 一本色道综合亚洲| 亚洲大片在线观看| 国产女主播一区二区| 国产精品另类一区| 丁香啪啪综合成人亚洲小说 | 国产成人av电影免费在线观看| 老司机精品导航| 石原莉奈在线亚洲三区| 国产精品日韩一区二区| 麻豆精品视频在线观看免费| 日韩国产在线一| 国产精品日韩久久久| 亚洲女与黑人做爰| 99国产精品视频免费观看一公开 | 欧美va亚洲va香蕉在线| 丰满放荡岳乱妇91ww| 欧美电影精品一区二区| 99国产精品一区| 国产精品久久久久久久久快鸭 | 中文字幕国产一区二区| 久久超碰97中文字幕| 欧美丝袜丝交足nylons图片| 日产精品久久久久久久性色| 色噜噜狠狠色综合中国| 日韩精品每日更新| 欧美日本精品一区二区三区| 午夜成人在线视频| 色婷婷综合久久久久中文一区二区| 日韩精品乱码免费| 欧美性videosxxxxx| 国产91精品免费| 中文字幕av在线一区二区三区| 亚洲一级一区| 麻豆一区二区三| 日韩欧美综合一区| 亚洲高清不卡| 日本午夜精品视频在线观看| 欧美一区二区美女| av在线播放一区二区三区| 欧美国产视频在线| 久久av一区二区三区| 韩国精品主播一区二区在线观看| 亚洲精品一区二区精华| 韩日成人在线| 麻豆免费看一区二区三区| 26uuu精品一区二区三区四区在线| 欧美日韩精品免费观看视一区二区 | 欧美午夜免费电影| 欧美国产先锋| 男男视频亚洲欧美| 久久精品一级爱片| 久久久久成人精品免费播放动漫| 九一久久久久久| 中文欧美字幕免费| 色系网站成人免费| 91在线你懂得| 久久国产人妖系列| 国产精品灌醉下药二区| 9191成人精品久久| 日韩视频免费| 成人在线一区二区三区| 亚洲精品水蜜桃| 国产精品伦一区二区三级视频| 欧美在线一区二区三区| 一区三区视频| av一区二区三区黑人| 九九在线精品视频| 丝袜美腿亚洲色图| 一区二区中文字幕在线| 国产偷v国产偷v亚洲高清| 在线综合视频播放| 精品视频1区2区3区| 色婷婷精品久久二区二区蜜臂av| 亚洲大片av| 亚洲二区三区四区| 一区在线视频| 欧美日韩精品免费观看 | 91精品国产91热久久久做人人| 欧美日韩aaaaaa| 欧美一区二区福利在线| 久久久久成人黄色影片| 国产欧美日韩久久| 国产精品嫩草影院av蜜臀| 国产色综合一区| 中文子幕无线码一区tr| 综合色中文字幕| 午夜不卡在线视频| 国产麻豆日韩欧美久久| 成人黄色大片在线观看| 欧美天天在线| 国产精品一区免费观看| 99riav国产精品| 欧美视频在线观看一区| 久久精品网站免费观看| 国产精品素人一区二区| 亚洲欧美激情视频在线观看一区二区三区| 日韩美女视频一区| 日本aⅴ精品一区二区三区| 成人一二三区视频| 亚洲激情啪啪| 91精品综合久久久久久| 国产目拍亚洲精品99久久精品| 夜夜爽夜夜爽精品视频| 国产福利一区在线| 亚洲美女网站| 日韩精品一区二区三区老鸭窝| 国产精品国产自产拍高清av| 极品少妇一区二区三区精品视频| 欧美三级网页| 51精品久久久久久久蜜臀| xvideos.蜜桃一区二区| 午夜成人免费视频| 成人黄色免费短视频| 亚洲欧美久久| 精品久久国产老人久久综合| 午夜视频一区二区| 欧美日韩国产精品一卡| 在线免费不卡视频| 亚洲女厕所小便bbb| 处破女av一区二区| 色视频一区二区| 亚洲精品久久久久久国产精华液| 国产成人亚洲精品狼色在线 | 成人永久aaa| 欧美丝袜第三区| 亚瑟在线精品视频| 99精品视频一区| 欧美一卡2卡3卡4卡| 亚洲伊人伊色伊影伊综合网| 91在线观看污| 精品国产sm最大网站| 成人午夜精品一区二区三区| 欧美喷潮久久久xxxxx| 亚洲一区视频在线| 激情综合网址| 久久天天做天天爱综合色| 国产福利一区二区三区视频在线| 久久综合一区| 亚洲h在线观看| 日韩午夜激情| 中文字幕一区二区三区在线观看| 91片在线免费观看| 久久久国产精品麻豆| 成人激情免费视频| 久久久久国产精品麻豆| 欧美日韩综合精品| 亚洲色欲色欲www| 性刺激综合网| 激情小说亚洲一区| 欧美久久久久久蜜桃| 国产成人综合在线播放| 538在线一区二区精品国产| 国产69精品久久久久毛片| 精品国产乱码久久久久久蜜臀| aaa欧美大片|