欧洲精品一区二区三区久久_无码内射中文字幕岛国片_国产精品99久久免费黑人人妻_人人爽人人av_伊人再见免费在线观看高清版 _成年人黄色片视频_免费看欧美一级片_国产极品尤物在线_久久久999免费视频_亚洲激情免费视频_免费成人深夜夜行网站视频_91aaa精品

快消品貨源批發市場
快消品貨源分銷平臺
 
 
當前位置: 貨源批發網 » 網商學院 » 獨立商城 » 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層次數據查詢的實現方法

分享與收藏:  網商學院搜索  告訴好友  關閉窗口  打印本文 本文關鍵字:
 
更多..資源下載
獨立商城圖文
獨立商城網商學院推薦
獨立商城點擊排行
 
手機版 手機掃描訪問
欧洲精品一区二区三区久久_无码内射中文字幕岛国片_国产精品99久久免费黑人人妻_人人爽人人av_伊人再见免费在线观看高清版 _成年人黄色片视频_免费看欧美一级片_国产极品尤物在线_久久久999免费视频_亚洲激情免费视频_免费成人深夜夜行网站视频_91aaa精品
国产乱子伦农村叉叉叉| www在线观看免费| 精品无码国模私拍视频| 亚洲天堂网站在线| 手机在线免费观看毛片| 黄色免费观看视频网站| 欧美一级特黄aaaaaa在线看片| 日本人视频jizz页码69| 黄色高清无遮挡| 漂亮人妻被中出中文字幕| 极品粉嫩国产18尤物| 日韩美女爱爱视频| 91免费版看片| 国产在线观看欧美| 天堂а√在线中文在线 | 午夜探花在线观看| 五月天色婷婷综合| japanese在线视频| 亚洲自拍偷拍一区二区三区| 久久精品视频在线观看免费| 五月天中文字幕在线| 成人黄色一级大片| 亚洲天堂一区二区在线观看| 操人视频免费看| 日日夜夜精品视频免费观看| 国产精品av免费| 4444在线观看| 妺妺窝人体色777777| 久久精品视频16| 国产日韩一区二区在线观看| 亚洲五月天综合| 欧美一级xxxx| 好色先生视频污| 男人添女人荫蒂免费视频| 亚洲国产成人精品无码区99| 无码中文字幕色专区| 欧美aⅴ在线观看| 无限资源日本好片| 亚欧美一区二区三区| www.一区二区.com| 黄色片久久久久| 手机版av在线| www.18av.com| 国内外成人免费激情视频| 九色porny91| 欧美h视频在线观看| av在线播放天堂| 亚洲中文字幕久久精品无码喷水 | 亚洲另类第一页| 米仓穗香在线观看| 国产精品沙发午睡系列| 性欧美videossex精品| 日本一区二区免费高清视频| 性高湖久久久久久久久aaaaa| 国产中文字幕视频在线观看| 中文字幕天天干| 国内外成人激情免费视频| 日韩小视频在线播放| 精品亚洲一区二区三区四区| 成人手机在线播放| 日韩精品无码一区二区三区免费| 天堂中文av在线| 免费看黄在线看| 国产精品视频中文字幕| 男人添女人下部视频免费| 欧美精品成人网| 在线观看18视频网站| 久久久久久久久久福利| 国产又爽又黄ai换脸| 欧美性久久久久| 日本一级淫片演员| 成人在线免费播放视频| 男插女免费视频| 男人女人黄一级| 成人小视频在线观看免费| 久久久久久蜜桃一区二区| 亚洲熟妇无码一区二区三区导航| 不卡的在线视频| 国产男女在线观看| www.欧美黄色| 亚洲男人天堂av在线| 久久久久久久久久久久久国产精品| 亚洲国产精品影视| 狠狠热免费视频| 分分操这里只有精品| 九九九久久久久久久| youjizzxxxx18| 欧美,日韩,国产在线| 欧美aaa在线观看| 2025韩国理伦片在线观看| 91九色在线观看视频| 黄色录像特级片| 午夜激情影院在线观看| 北条麻妃在线视频| 99热自拍偷拍| 久久久久久av无码免费网站下载| 亚洲综合欧美激情| 国产男女激情视频| 黄色一级在线视频| 大荫蒂性生交片| 一本二本三本亚洲码 | 国内自拍中文字幕| 手机在线免费毛片| 羞羞的视频在线| 冲田杏梨av在线| 日韩精品无码一区二区三区免费| 91九色丨porny丨国产jk| 热久久最新网址| 国产又粗又爽又黄的视频| av中文字幕网址| 一区二区三区韩国| 亚洲一二三区av| 黄色三级视频片| 青青在线免费观看视频| 99久久国产宗和精品1上映 | 免费看毛片的网址| xxxxxx在线观看| 少妇熟女一区二区| 午夜在线视频免费观看| 三级av免费看| 中文字幕第66页| 波多野结衣三级在线| 91精品国产三级| 青青草原播放器| 手机福利在线视频| 黄色影视在线观看| 小泽玛利亚av在线| 大陆极品少妇内射aaaaaa| 老司机午夜网站| 日韩久久久久久久久久久久| 成人一级生活片| 日韩精品在线中文字幕| 国产在线xxxx| 久久久久免费看黄a片app| 欧美丰满熟妇bbbbbb百度| 国产欧美在线一区| 韩国中文字幕av| av噜噜在线观看| 五月天综合婷婷| 黄色三级中文字幕| 久草热视频在线观看| 久久精品午夜福利| 在线免费观看av的网站| 在线观看免费污视频| 国产高清精品软男同| 日韩久久久久久久久久久久| 男人日女人视频网站| 欧美三级午夜理伦三级| 一起操在线视频| 成人手机在线播放| 99视频在线免费播放| 超碰在线97免费| av磁力番号网| 成年人午夜免费视频| 精品少妇无遮挡毛片| 污视频在线观看免费网站| 成人免费在线网| 人人爽人人av| 日本三日本三级少妇三级66| 青青青免费在线| 小泽玛利亚视频在线观看| 国产奶头好大揉着好爽视频| 成人午夜精品久久久久久久蜜臀| 一本久道中文无码字幕av| xxx中文字幕| 国产资源在线视频| 久久久久久蜜桃一区二区| 人妻无码一区二区三区四区| 欧美牲交a欧美牲交aⅴ免费下载| 亚洲天堂国产视频| 成人黄色大片网站| 男人添女人下面免费视频| 300部国产真实乱| 欧美日韩大尺度| 亚洲精品少妇一区二区| 日韩福利视频在线| 日本天堂免费a| 久久久国产欧美| 日韩精品一区二区免费| 久久婷婷综合色| cao在线观看| 狠狠干狠狠操视频| a级黄色一级片| 天天综合五月天| 天堂社区在线视频| 99在线观看视频免费| 国产一伦一伦一伦| 97国产在线播放| av电影一区二区三区| jizz欧美激情18| 国产男女免费视频| 99热一区二区三区| 久久午夜夜伦鲁鲁一区二区| 久久这里只有精品8| 日本中文字幕观看| 熟女人妇 成熟妇女系列视频| 国产制服91一区二区三区制服| 免费看污污网站| 春日野结衣av| 妺妺窝人体色www看人体|