create table catelog(
id int identity(1,1) not null primary key,
description nvarchar(50),
parent_id int -- 存放父節點的ID
)
go
-- 建索引提高查詢性能。
create index ix_catelog_parent on catelog(parent_id)
go
Ⅱ 從資料庫讀取數據轉化為樹狀菜單
以前在VS05中用的
string connstr = "server=(local);database=**;uid=**;pwd=**";
SqlConnection conn = new SqlConnection(connstr);
string commstr="select * from 軟體信息表";
SqlDataAdapter da = new SqlDataAdapter(commstr,conn);
DataSet ds = new DataSet();
da.Fill(ds);
for(int i = 0; i < ds.Tables[0].Rows.Count; i++)
{
MenuItem first = new MenuItem();
first.Value = ds.Tables[0].Rows[i][1].ToString();
mm.Items.Add(first);
Int32 軟體ID = Int32.Parse(ds.Tables[0].Rows[i][0].ToString());
conn.Open();
string commstr1 = "select * from 類型表 where 所屬軟體=" + 軟體ID;
SqlCommand comm1 = new SqlCommand(commstr1, conn);
SqlDataReader read = comm1.ExecuteReader();
while (read.Read())
{
MenuItem second = new MenuItem();
second.Value = read.GetValue(1).ToString();
first.ChildItems.Add(second);
}
conn.Close();
}
Ⅲ SQL存儲過程顯示樹形菜單,該怎麼處理
示範代碼一(更改指定條件為列2為張三的數據): Update 表名 Set [列1]='22444',[列3]='asdasd' where [列2]='張三';示範代碼二(更改前1000條數據,設置列2的值是張三) Update 表名 Set [列2]='張三' where (Select Top 1000 [列2] from 表名);
Ⅳ 如何用SQL語句查詢樹形菜單包含的所有數據
Sql Server 2000因為你這里說了只有三級分類,所以我就不寫Sql函數了,得到華北下面所有子類別的ClassID(不包括華北的ClassID)select ClassID from Newclass where classParentID in (select ClassID from Newclass where classParentID=51)
Ⅳ SQL樹形層級查詢
你好的!
oracle 的start with connect by
別的資料庫用cte 遞歸都能達到你要的效果!
望採納~
Ⅵ sql server 2005實現樹形菜單顯示的資料庫表怎麼設計
第一種:單表。
列分別為 id、菜單名稱、子菜單id列表;
id:菜單的唯一編號
子菜單id列表:用逗號(或其他分隔符)分割的多個id的字元串,再由程序中進行處理,分割出多個id;
優點:查詢速度非常快。
缺點:不利於維護和拓展,在進行菜單項排序時需要再多寫代碼進行處理。
第二種:單表內連接。
列分別為 id、菜單名稱、父菜單id;
根節點的父菜單id為null或者0等一個可以唯一標志的。在查詢時進行表內連接查詢;
優點:利於表結構的維護和拓展,並且符合設計範式;
缺點:在查詢時會造成一些麻煩,並且性能上會受到影響。
當然還有很多其他的方法,這里只例舉2個比較常用的方法。
Ⅶ 求一條sql語句,樹形結構
最後SQL語句返回的結果是什麼?看一下以下語句行不行?
WITHAAS(SELECTpk_compID,Name,pk_fathercompPIDFROMcompany
UNIONALL
SELECTpk_dept,DeptName,pk_compFROMdept),
BAS
(SELECTCAST(NameASVARCHAR(200))Name,PID,IDFROMAWHEREPID=0
UNIONALL
SELECTCAST(B.Name+''+A.NameASVARCHAR(200)),A.PID,A.ID
FROMBJOINAONB.ID=A.PID)
SELECTNameFROMB
Ⅷ 如何用sql語句實現樹形的資料庫表查詢
如果樹的層數固定就可以用語句查詢,但效率比較低。例如你說的三層:
select id,v2.name+name from t1 inner join
(select id,v1.name+name as name from t1 inner join
(select id,name from t1 where parentid = 0) v1 on t1.parentid = v1.id) v2 on t1.parentid = v2.id
Ⅸ 用sql語句能夠解析出樹形菜單嗎
能,使用以下語句:
select * from table
start with id = ?
connect by prior id = ?
分從葉子到樹根查詢和從樹根到葉子查詢,具體用法自己查一下。