當前位置:首頁 » 數據倉庫 » treeview資料庫綁定
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

treeview資料庫綁定

發布時間: 2022-08-15 05:15:20

A. winform的treeview怎麼進行資料庫綁定。

treeview沒有DataSource屬性,需要通過添加節點,如用:treeView1.Nodes.Add(nodes)添加,nodes參數,便可從資料庫中讀取某個欄位信息來填充了。
比如:
//資料庫連接,用了helper類
string commandText="select NAME from STUDENT_TB"
dt = OracleHelper.GetDataTable(commandText)
//treeview添加節點數據
string nodes=string.Empty;
for(int i=0;i<dt.Rows.Count;i++)
{
nodes=dt.Rows[i]["NAME"].ToString();
TreeNode root = new TreeNode(nodes);
root.Tag = 0;
treeView1.Nodes.Add(root);
}

B. 如何把資料庫裡面的數據綁定到Treeview控制項中,我用的是C#連得sql Server

// 根節點 單位節點
datatable dtNodeDepartment=new datatable();
dtNodeDepartment=db.getDatatable(" select distinct 單位編號 from department");//該行為讀取資料庫數據至datatable 表格dtNodeDepartment 中。您根據自己情況調整。

for(int i=0;i<dtNodeDepartment.Rows.Count ;i++) //遍歷數據表的行,將數據添加進去
{
TreeNode node = new TreeNode();
node.Text = dtNodeDepartment.Rows[i][0].ToString().Trim();// 您的需求是對該行數據 根據節點的級別,求day,或求hour,或求year,然後綁定到nodetext就行了。
node.Name = "單位編號";
treeView.Nodes.Add(node);
}

祝你成功!!

C. C#中TreeView與資料庫綁定

///
///
動態綁定TreeView,遞歸
///
///
要綁定到的TreeView控制項名稱
///
准備綁定到TreeView控制項的數據DataTable的名稱
///
分級條件id,頂級分類ID為0
///
上級TreeNode節點名稱,沒有上級節點或或全新綁定這里寫(TreeNode)null
///
節點的分級條件在資料庫中的欄位
///
節點綁定的顯示的文本在資料庫中的欄位
///
節點綁定的Tag值在資料庫中的欄位
public
static
void
bind_treeview(TreeView
tv,
DataTable
dt,
int
Filterid,
TreeNode
node,string
Node_FLZD,string
NodeText_ZD,string
NodeTag_ZD)//綁定treeView的方法。
{
DataView
subView
=
dt.DefaultView;
subView.RowFilter
=
Node_FLZD
+
"="
+
Filterid;
//獲得ID級別為當前ID的
foreach
(DataRowView
item
in
subView)
{
//如果上級ID為0就直接載入樹下面
if
(Filterid
==
0)
{
TreeNode
treenodel
=
new
TreeNode();
//創建一個節點
treenodel.Text
=
item[NodeText_ZD].ToString();
//節點名稱
int
id
=
Convert.ToInt32(item[NodeTag_ZD]);
treenodel.Tag
=
id.ToString();
//節點值
tv.Nodes.Add(treenodel);
//
如果級別ID為0就直接加到根節點
bind_treeview(tv,
dt,
id,
treenodel,
Node_FLZD,
NodeText_ZD,
NodeTag_ZD);
//
遞歸調用
}
else
{
//不為0就載入傳進來的子節點下
TreeNode
treenodel
=
new
TreeNode();
treenodel.Text
=
item[NodeText_ZD].ToString();
int
id
=
Convert.ToInt32(item[NodeTag_ZD]);
treenodel.Tag
=
id.ToString();
treenodel.ExpandAll();
node.Nodes.Add(treenodel);
//把節點加入到當前節點下,
bind_treeview(tv,
dt,
id,
treenodel,
Node_FLZD,
NodeText_ZD,
NodeTag_ZD);
}
}
}

D. vb.net treeview 資料庫綁定

TreeView1.Nodes.Add(itme) 這樣就行了,已經是實例了何必再去實例化
你的itme也沒去 movenext

E. c# asp treeview綁定資料庫

TreeView控制項要求綁定到xml數據源上,所以必須設法把資料庫中的內存轉成xml文件,然後再進行綁定。
首先,在網頁中添加一個XmlDataSource:
<asp:XmlDataSource ID="XmlDataSource1" runat="server"></asp:XmlDataSource>
和一個TreeView控制項:
<asp:TreeView ID="TreeView1" runat="server"></asp:TreeView>

然後在Page_load事件中添加以下代碼:

// 連接資料庫
SqlConnection conn = new SqlConnection("連接字元串");
SqlCommand cmd = new SqlCommand("SELECT * FROM 數據表", conn);
conn.Open();
SqlDataReader reader = cmd.ExecuteReader();

// 新建XML文檔
XmlDocument doc = new XmlDocument();
XmlElement root;
XmlElement element;

// 插入xml聲明
XmlDeclaration dec = doc.CreateXmlDeclaration("1.0", null, "yes");
doc.InsertBefore(dec, doc.DocumentElement);

// 用來記錄根節點元素
ArrayList elements = new ArrayList();

// 插入第一個節點
reader.Read();
element = doc.CreateElement((string)reader["name"]);
elements.Add(element);
doc.InsertAfter(element, dec);

// 插入後面的子節點
while (reader.Read())
{
// 創建子節點
element = doc.CreateElement((string)reader["name"]);
elements.Add(element);

// 找到它的父節點,然後添加到父節點下
root = (XmlElement)elements[(int)reader["parent"]-1];
root.AppendChild(element);
}

// 保存xml文件
FileStream fs = new FileStream(@"D:\Temp\names.xml", FileMode.Create);
doc.Save(fs);
fs.Close();

// 設置xml數據源控制項並把它綁定到TreeView控制項上
XmlDataSource1.DataFile = @"D:\Temp\names.xml";
TreeView1.DataSource = XmlDataSource1;
TreeView1.DataBind();

這樣TreeView1就綁定了一個從資料庫中讀出的樹結構,並在網頁中顯示出來。
再說明一下,TreeView是不可能綁定到一個關系資料庫表的數據源上的,只能綁定到Xml數據源或SiteMapDataSource。

F. 如何用C#的treeview動態綁定資料庫

這樣就應該可以了。

string sql="select name from sysobject where xtype ='U'";
SqlDataAdapter adapter = new SqlDataAdapter(sql, conn);
adapter.Fill(resultDS, "sysobject");

foreach(DataRow row in resultDS.Talbes["sysobject"].Rows)
{
sql="Select top 1 * From "+row["Name"].ToString();
adapter = new SqlDataAdapter(sql, conn);
adapter.Fill(resultDS, row["Name"].ToString());
TreeNode tn = new TreeNode();
tn.Name = row["Name"].ToString();
tn.Text = row["Name"].ToString();
treeView1.Nodes.Add(tn);
foreach(DataColumn col in resultDS.Talbes[row["Name"].ToString()].Columns)
{
TreeNode subtn = new TreeNode();
subtn.Name = col.ColumnName;
subtn.Text = col.ColumnName;
tn.Nodes.Add(subtn );
}

}

G. vb.net中treeview的數據綁定

第一步:定義兩個DataTable對象,並把資料庫中的兩個表分別讀入這兩個DataTable對象中;如Dt1用於存儲省名表,Dt2用於存儲省轄市名表。

第二步:先綁定Dt1,以循環方式向TreeView添加Node。其中,Node.index就是Dt1中id欄位的值,Node.Text就是Dt1中name欄位的值。

第三步:綁定Dt2,同樣以循環方式向TreeView添加Node。這里稍微有點復雜,需先判斷下已經存在於TreeView中的節點,如果節點的索引是3,則向這個節點下添加id為3xx的子節點。
獲得當前節點的索引值的語句是:dim s as Integer = TreeView1.Nodes(i).Nodes.IndexOf(Node)
為當前節點添加子節點的語句是:TreeView1.Nodes(i).Nodes(s).Nodes.Add(Node)

最後的效果是:TreeView中有北京、上海、山東等節點,點擊"山東"則會展開其下面的"濟南"、"青島"、"煙台"等子節點。

H. VB中,怎麼將TreeView綁定到資料庫

'VB利用ADODB連接ACCESS資料庫,執行查詢、刪除操作
'引用MicrosoftActiveXDataObjects2.8Library
Dimselect_idAsString
DimConnStrAsString
PrivateSubCommand1_Click()'刷新
GetValue
EndSub
PrivateSubForm_Load()
ConnStr="Provider=Microsoft.Jet.OLEDB.4.0;DataSource=C:你文件的路徑abc.mdb;PersistSecurityInfo=False"
TreeView1.LineStyle=tvwRootLines
TreeView1.LabelEdit=tvwManual
GetValue
EndSub
PrivateSubmnu_del_Click()'菜單:刪除
DelRecordselect_id
EndSub
PrivateSubTreeView1_MouseUp(ButtonAsInteger,ShiftAsInteger,xAsSingle,yAsSingle)
DimndAsNode
IfButton=vbRightButtonThen
Setnd=TreeView1.HitTest(x,y)
IfNotndIsNothingThen
IfLeft(nd.Key,1)="R"Then
select_id=nd.Text
Me.PopupMenumnupop
EndIf
EndIf
EndIf
EndSub
PrivateSubTreeView1_NodeClick(ByValNodeAsMSComctlLib.Node)
IfLeft(Node.Key,1)="R"Then
Text1.Text=Node.Text
Text2.Text=Node.Child.Text
EndIf
EndSub
PrivateSubGetValue()
DimiAsInteger
DimCnnAsADODB.Connection
DimRsAsADODB.Recordset
DimCnn_cAsNewADODB.Command
SetCnn=NewADODB.Connection
SetRs=NewADODB.Recordset
Cnn.ConnectionString=ConnStr
WithCnn
.CursorLocation=adUseClient
.Open
EndWith
Cnn_c.CommandType=adCmdText
Cnn_c.CommandText="select*fromPJ"
SetCnn_c.ActiveConnection=Cnn
SetRs=Cnn_c.Execute
TreeView1.Nodes.Clear
IfRs.RecordCount>0Then
Fori=1ToRs.RecordCount
TreeView1.Nodes.Add,,"R"&i,Rs.Fields("BRAND")
TreeView1.Nodes.Add"R"&i,tvwChild,,Rs.Fields("MODEL")
Rs.MoveNext
Next
Rs.Close
EndIf
Cnn.Close
SetCnn_c=Nothing
SetRs=Nothing
SetCnn=Nothing
EndSub
PrivateSubDelRecord(ByValidAsString)
DimiAsInteger
DimCnnAsADODB.Connection
DimRsAsADODB.Recordset
DimCnn_cAsNewADODB.Command
SetCnn=NewADODB.Connection
SetRs=NewADODB.Recordset
Cnn.ConnectionString=ConnStr
WithCnn
.CursorLocation=adUseClient
.Open
EndWith
Cnn_c.CommandType=adCmdText
Cnn_c.CommandText="deletefromPJwhereBRAND='"&id&"'"
SetCnn_c.ActiveConnection=Cnn
SetRs=Cnn_c.Execute'執行刪除
Cnn_c.CommandText="select*fromPJ"
SetRs=Cnn_c.Execute'執行查詢
TreeView1.Nodes.Clear
IfRs.RecordCount>0Then
Fori=1ToRs.RecordCount
TreeView1.Nodes.Add,,"R"&i,Rs.Fields("BRAND")
TreeView1.Nodes.Add"R"&i,tvwChild,,Rs.Fields("MODEL")
Rs.MoveNext
Next
Rs.Close
EndIf
Cnn.Close
SetCnn_c=Nothing
SetRs=Nothing
SetCnn=Nothing
EndSub

I. 在WinForm中用treeview綁定數據

#region 綁定TreeView
/// <summary>
/// 綁定TreeView(利用TreeNode)
/// </summary>
/// <param name="p_Node">TreeNode(TreeView的一個節點)</param>
/// <param name="pid_val">父id的值</param>
/// <param name="id">資料庫 id 欄位名</param>
/// <param name="pid">資料庫 父id 欄位名</param>
/// <param name="text">資料庫 文本 欄位值</param>
protected void Bind_Tv(DataTable dt, TreeNode p_Node, string pid_val, string id, string pid, string text)
{
DataView dv = new DataView(dt);//將DataTable存到DataView中,以便於篩選數據
TreeNode tn;//建立TreeView的節點(TreeNode),以便將取出的數據添加到節點中
//以下為三元運算符,如果父id為空,則為構建「父id欄位 is null」的查詢條件,否則構建「父id欄位=父id欄位值」的查詢條件
string filter = string.IsNullOrEmpty(pid_val) ? pid + " is null" : string.Format(pid + "='{0}'", pid_val);
dv.RowFilter = filter;//利用DataView將數據進行篩選,選出相同 父id值 的數據
foreach (DataRowView row in dv)
{
tn = new TreeNode();//建立一個新節點(學名叫:一個實例)
if (p_Node == null)//如果為根節點
{
tn.Name = row[id].ToString();//節點的Value值,一般為資料庫的id值
tn.Text = row[text].ToString();//節點的Text,節點的文本顯示
TreeView1.Nodes.Add(tn);//將該節點加入到TreeView中
Bind_Tv(dt, tn, tn.Name, id, pid, text);//遞歸(反復調用這個方法,直到把數據取完為止)
}
else//如果不是根節點
{
tn.Name = row[id].ToString();//節點Value值
tn.Text = row[text].ToString();//節點Text值
p_Node.Nodes.Add(tn);//該節點加入到上級節點中
Bind_Tv(dt, tn, tn.Name, id, pid, text);//遞歸
}
}
}

/// <summary>
/// 綁定TreeView(利用TreeNodeCollection)
/// </summary>
/// <param name="tnc">TreeNodeCollection(TreeView的節點集合)</param>
/// <param name="pid_val">父id的值</param>
/// <param name="id">資料庫 id 欄位名</param>
/// <param name="pid">資料庫 父id 欄位名</param>
/// <param name="text">資料庫 文本 欄位值</param>
private void Bind_Tv(DataTable dt, TreeNodeCollection tnc, string pid_val, string id, string pid, string text)
{
DataView dv = new DataView(dt);//將DataTable存到DataView中,以便於篩選數據
TreeNode tn;//建立TreeView的節點(TreeNode),以便將取出的數據添加到節點中
//以下為三元運算符,如果父id為空,則為構建「父id欄位 is null」的查詢條件,否則構建「父id欄位=父id欄位值」的查詢條件
string filter = string.IsNullOrEmpty(pid_val) ? pid + " is null" : string.Format(pid + "='{0}'", pid_val);
dv.RowFilter = filter;//利用DataView將數據進行篩選,選出相同 父id值 的數據
foreach (DataRowView drv in dv)
{
tn = new TreeNode();//建立一個新節點(學名叫:一個實例)
tn.Name = drv[id].ToString();//節點的Value值,一般為資料庫的id值
tn.Text = drv[text].ToString();//節點的Text,節點的文本顯示
tnc.Add(tn);//將該節點加入到TreeNodeCollection(節點集合)中
Bind_Tv(dt, tn.Nodes, tn.Name, id, pid, text);//遞歸(反復調用這個方法,直到把數據取完為止)
}
}
#endregion

綁定代碼:
Bind_Tv(datatable,TreeView1.Nodes, null, "id欄位", "父id欄位", "名稱欄位");

J. C#中treeview與資料庫的連接

我簡單寫下代碼,我的思想是使用資料庫鏈表填充,先看代碼吧:

//資料庫怎麼操作讀取數據我就不寫了,假如我現在有了dataset對象ds,在查數據表的時候我們就把順序排列好
for(inti=0;i<ds.Tables[0].Rows.Count;i++)
{
tree.Nodes.Add(ds.Tables[0].Rows[i]["列名"].ToString());
}

如果要加入子節點,那我們就加完父節點再查找子節點,挨個加進去:

//建立個ds返回對象,以父節點作為參數
for(inti=0;i<ds.Tables[0].Rows.Count;i++)
{
tree.Nodes.Add(ds.Tables[0].Rows[i]["列名"].ToString());
}
foreach(TreeNodestdintree.Nodes)
{
for(intj=0;j<td.Text).Tables[0].Rows.Count;i++)
{
td.Add(dss(td.Text).Tables[0].Rows[j]["列名"].ToString());
}
}