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());
}
}