C#中TreeView控件无级绑定Access数据库
有这样一个Access数据库Test1有三个表,表1 ID【ID,父ID,NodeName,。。。】表3 节点数据【ID,。。。,剩余电量】现想用C#在WinForm中用TreeView控件无级绑定节点数据,显示节点信息,该如何实现? --------------------编程问答-------------------- 给你个demo
--------------------编程问答-------------------- 同问,高手请帮帮忙啊 --------------------编程问答-------------------- http://www.cnblogs.com/duhongyu216/articles/1702591.html
public partial class Left : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
if (!Page.IsPostBack)
{
BindTree();
//InitTree();
}
}
#region 主从表绑定
private void BindTree()
{
DataSet dst = GetTreeViewData();
TreeView1.ShowCheckBoxes = TreeNodeTypes.All;
foreach (DataRow masterRow in dst.Tables["province"].Rows)
{
TreeNode masterNode = new TreeNode((string)masterRow["province"]);
TreeView1.Nodes.Add(masterNode);
foreach (DataRow childRow in masterRow.GetChildRows("Children"))
{
TreeNode childNode =new TreeNode((string)childRow["city"]);
masterNode.Expanded = false;
masterNode.ChildNodes.Add(childNode);
}
}
}
private DataSet GetTreeViewData()
{
string constring = System.Configuration.ConfigurationSettings.AppSettings["ConnectionStr"];
SqlConnection con = new SqlConnection(constring);
SqlDataAdapter daprovince = new SqlDataAdapter("SELECT * FROM province", con);
SqlDataAdapter dacity = new SqlDataAdapter("SELECT * FROM city", con);
DataSet ds = new DataSet();
daprovince.Fill(ds, "province");
dacity.Fill(ds, "city");
ds.Relations.Add("Children", ds.Tables["province"].Columns["provinceid"], ds.Tables["city"].Columns["father"]);
return ds;
}
#endregion
#region 递归绑定同一个表数据
private void InitTree()
{
DataTable dt = GetTreeViewTable();
DataView dv = new DataView(dt);
dv.RowFilter = "ParentID=0";
TreeView1.ShowCheckBoxes = TreeNodeTypes.All;
foreach (DataRowView drv in dv)
{
TreeNode node = new TreeNode();
node.Text = drv["text"].ToString();
node.Value = drv["ID"].ToString();
node.Expanded = false;
TreeView1.Nodes.Add(node);
AddReplies(dt,node);
}
}
private DataTable GetTreeViewTable()
{
string constring = System.Configuration.ConfigurationSettings.AppSettings["ConnectionStr"];
SqlConnection con = new SqlConnection(constring);
SqlDataAdapter da = new SqlDataAdapter("SELECT * FROM treeview", con);
DataTable dt = new DataTable();
da.Fill(dt);
return dt;
}
private void AddReplies(DataTable dt, TreeNode node)
{
DataView dv = new DataView(dt);
dv.RowFilter = "ParentID='" + node.Value + "'";
foreach (DataRowView row in dv)
{
TreeNode replyNode = new TreeNode();
replyNode.Text = row["text"].ToString();
replyNode.Value = row["ID"].ToString();
replyNode.Expanded = false;
node.ChildNodes.Add(replyNode);
AddReplies(dt,replyNode);
}
}
#endregion
}
补充:.NET技术 , ASP.NET