㈠ C# treeview添加子节点绑定sql数据库,以及点击的时候跟datagridview关联
1.连接你要访问的橡者辩数据库
//string sql="";
Sqlconnection cn=new SqlConnection();
SqlCommand cmd=new SqlCommand(sql,cn);
cn.Open();
2.用梁缺SqlDataReader类 来接收
SqlDataDtaReader rd=cmd.ExecuteReader();
3.创建子节点
TreeNode root=new TreeNode("根部");
TreeNode tn1=new TreeNode("节点1");
TreeNode tn2=new TreeNode("节点2");
root.Nodes.AddRange(new TreeNode[]{tn1,tn2});
treeView1.Nodes.Add(root);
4.绑定子节点的嫌乎数据
while(rd.Read())
{
TreeNode 节点名=new TreeNode(rd["数据库中表的列名"].ToString());
tn1.Nodes.Add(节点名);
}
㈡ C# treeview 节点如何实现新建、 删除、 重命名及移动,并保存数据库
你这个和我需要的类似啊谈芦!节点的获取能够进行增删改查和移动!含汪带这种效果是陵孙很好的,但具体怎么去实现就是个很麻烦的问题。
㈢ 如何在c# treeview控件动态绑定数据库,实现2级目录,添加父节点并在父节点下添加子节点
从你的数据表中读晌凳出父举尺子节点表到DataTable中,然后按上下级关系一个个添加就可以。添加父子节点只需另写一个功能很数据表中加就行,比较简单。
给你一个示例,大概是这样子。
private void ShowTree()
{
this.SystemTree.Nodes.Clear();
TreeNode rootNode = new TreeNode();
rootNode.Text = "XXXXXXXX";
rootNode.Value = "";
int status = 0;
rootNode.NavigateUrl = "javascript:SelectNode('root',' '," + Convert.ToString(nodeid++) + "," + status + ")";
this.SystemTree.Nodes.Add(rootNode);
SubsystemManagement subSystem = new SubsystemManagement();
DataTable dt = new DataTable();
dt = subSystem.GetAllsubsystemInfo(); /正谨高/显示子系统名称
foreach (DataRow dr in dt.Rows)
{
TreeNode subNode = new TreeNode();
string subSysName = dr["CFunName"].ToString();
subNode.Text = subSysName;
string subSysId = dr["CFunctionID"].ToString();
subNode.Value = subSysId;
status = 1;
subNode.NavigateUrl = "javascript:SelectNode('subsys','" + subSysId + "'," + Convert.ToString((nodeid++)) + "," + status + ")";
rootNode.ChildNodes.Add(subNode);
rootNode.Expanded = true;
DataTable sdt = new DataTable();
sdt = subSystem.GetMolesBySubSysId(subSysId); //显示模块名称
foreach (DataRow sdr in sdt.Rows)
{
TreeNode sNode = new TreeNode();
string moleName = sdr["CFunName"].ToString();
sNode.Text = moleName;
string moleId = sdr["CFunctionId"].ToString();
sNode.Value = moleId;
status = 1;
sNode.NavigateUrl = "javascript:SelectNode('mole','" + moleId + "'," + Convert.ToString((nodeid++)) + "," + status + ")";
subNode.ChildNodes.Add(sNode);
subNode.Expanded = true;
DataTable fdt = new DataTable();
fdt = subSystem.GetFunctionsByMoleId(moleId); //显示功能名称
foreach (DataRow fdr in fdt.Rows)
{
TreeNode fNode = new TreeNode();
fNode.Text = fdr["CFunName"].ToString();
fNode.Value = fdr["CFunctionId"].ToString();
status = 2;
fNode.NavigateUrl = "javascript:SelectNode('function','" + fdr["CFunctionId"].ToString() + "'," + Convert.ToString((nodeid++)) + "," + status + ")";
sNode.ChildNodes.Add(fNode);
sNode.Expanded = false;
}
}
}
}
㈣ C#中TreeView与数据库绑定
/// <summary>
/// 动态绑定TreeView,递归
/// </summary>
/// <param name="tv">要绑定到的TreeView控件名称</param>
/// <param name="dt">准备绑定到TreeView控件的数据DataTable的名称</param>
/// <param name="Filterid">分级条件id,顶级分类ID为0</param>
/// <param name="node">上级TreeNode节点名称,没有上级节点或或全新绑定这里写(TreeNode)null</param>
/// <param name="Node_FLZD">团此节点的分茄丛级条件在数据库中的字段</param>
/// <param name="NodeText_ZD">节点绑定的显示的文本在数据库中的字段</param>
/// <颤或樱param name="NodeTag_ZD">节点绑定的Tag值在数据库中的字段</param>
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);
}
}
}
㈤ C#窗体实现treeView显示数据库数据,并选中节点显示数据库内容到listView上
先放两控件上去,数据库取值的我就不写了,我假设你都得游盯到值了
private void treeView1_AfterSelect(object sender, TreeViewEventArgs e)
{
//先清空listView1中的值
listView1.Items.Clear();
//如果选中结点为想要的
if (treeView1.SelectedNode.Text == "计算机系")
{
//就把从数据库中取到的答衫值一一的添加到listView1的items中去
listView1.Items.Add("1班");
listView1.Items.Add("2班"神举和);
}
}
㈥ c#treeview读取数据库
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
TreeNode node = new TreeNode("root");
node.Tag = 0;
treeView1.Nodes.Add(node);
Fun(node);
}
public void Fun(TreeNode parentnode)
{
string conString = "";
SqlConnection conn = new SqlConnection();
conn.ConnectionString = conString;
conn.Open();
string sql = "";
if (parentnode == null)
sql = sql + "0";
else
sql = sql + (int)parentnode.Tag;
SqlCommand com = new SqlCommand(sql, conn);
SqlDataAdapter adapter = new SqlDataAdapter(com);
DataSet ds = new DataSet();
adapter.Fill(ds);
conn.Close();
for (int i = 0; i < ds.Tables[0].Rows.Count; i++)
{
int Id = (int)ds.Tables[0].Rows[i][0];
string name=(string)ds.Tables[0].Rows[i][1];
TreeNode node = new TreeNode(name);
node.Tag = Id;
if (parentnode == null)
treeView1.Nodes.Add(node);
else
parentnode.Nodes.Add(node);
Fun(node);
}
}
}
㈦ c# treeview 动态 数据库
乱核简单写下代码,思路是使用数据库链表填充,先看代码吧:
//数据库怎么操作读取数据我就不写了,假如现在有了dataset对象ds,在查数据表的时候就把顺序排列好
for(int i=0;i<ds.Tables[0].Rows.Count;i++)
{
tree.Nodes.Add(ds.Tables[0].Rows[i]["列名"].ToString());
}
如果要加入子节点,那就加完父节点再查找子昌陪此节点,挨个耐迅加进去:
//建立个ds返回对象,以父节点作为参数
for(int i=0;i<ds.Tables[0].Rows.Count;i++)
{
tree.Nodes.Add(ds.Tables[0].Rows[i]["列名"].ToString());
}
foreach(TreeNodes td in tree.Nodes)
{
for(int j=0;j<td.Text).Tables[0].Rows.Count;i++)
{
td.Add(dss(td.Text).Tables[0].Rows[j]["列名"].ToString());
}
}
㈧ C# treeview连接SQL数据库实现节点动态添加存储
TreeView加数据库是很简单不过的,我就写一遍代码吧,就直接连接数据库,这里简单写,不去作太多处理,主要是方便你看得懂:
publicDataSetds=null;
publicSqlConnectioncnn=null;
privatevoidForm_load(...)
{
cnn=newSqlConnecion();
cnn.ConnectionString="Server=SQL服务器名;UID=SQL用户名;PWD=SQL密码;DataBase=数悄梁桥据库名";
cnn.Open();
view(treeView1);
}
voidlinkSql(Stringsqlstr)
{
ds=newDataSet();
SqlDataAdapter渣轮sda=newSqlDataAdapter(sqlstr,cnn);
sda.Fill(ds);//到此是连接数据库得到数据集合ds
}
voidview(TreeViewtv)
{
Stringsql="Select*fromlab";
linksql(sql);
tv.ImageList=imageList1;//绑定启猛ImageList控件
for(inti=0;i<ds.Tables[0].Rows.Count;i++)
{
TreeNodetr=newTreeNode("实验室名",0,1);
tr.Nodes.Add("",ds.Tables[0].Rows[i]["labname"].ToString(),0,2);
//...其他的子节点
}
}
privatevoidtreeView1_Checked()
{
textBox1.Text=treeView1.Node.Value.ToString();
}
privatevoidbutton1_click(...)//假设他是删除按钮
{
linksql("Deletefromlabwherelabname='"+textBox1.Text.Trim()+"'");
linksql("Select*fromlab");
view(treeView1);//重新查一次数据库显示在treeView
}
后面的我就不多说了
㈨ 用extjs4做tree,结合struts,spring 查询数据库后返回json数据,并显示数据树,应该怎么做
很简单···你struts2是哪个版本的,高于2.16的,有一个散消struts2-json-plugin-2.1.8.jar的插件包,放入lib后;你要做现实菜单就必须在后台创建一个tree的class,内容是这样的
/**树节点ID*/
private String id;
/**树节点名称*/
private String text;
/**图标*/
private String cls;
/**是否叶子*/
private boolean leaf;
/**链接*/
private String href;
/**链接指向*/
private String hrefTarget;
/**是否展开*/
private boolean expandable;
/**描述信息*/
private String description;
然后将数据中的冲物知数据存入这个类的对象,再把得到的对象加入到一个java.util.List treeList中,然后在action里面将treeList转换成json,方法是这样的
JSONArray jsonArray = JSONArray.fromObject(treeList);
getResponse().setCharacterEncoding("utf-8");
getResponse().getWriter().println(jsonArray.toString());
,可能说蚂友的有点马虎,有不理解的可以再追问。
㈩ C# Winform treeview控件动态加载数据库
有饥庆咐2种方差指式:
1.存储过程
2.取出编号和名称的数据,在前台写分析代码。烂纯
我有空给你写一个发布在易学论坛.今天太晚了