树与数据库
来源:互联网 发布:关于流量的软件 编辑:程序博客网 时间:2024/05/12 16:33
public void tree2()
{
string strSql = "select distinct ModuleID, ModuleName,CatalogID from ModuleManager order by ModuleID";
string con = SqlHelper.ConnectionString;
SqlConnection oconn = new SqlConnection(con);
oconn.Open();
SqlDataReader dr;
SqlCommand scmd = new SqlCommand(strSql, oconn);
dr = scmd.ExecuteReader();
//SqlDataAdapter daCatalog = new SqlDataAdapter();
//daCatalog.TableMappings.Add("Table", "CatalogManager");
////daCatalog = new SqlDataAdapter(strSql1, SqlHelper.ConnectionString);
// SqlHelper.ExecuteReader(SqlHelper.ConnectionString, CommandType.Text, strSql);
//SqlDataReader dr = SqlHelper.ExecuteReader(SqlHelper.ConnectionString, CommandType.Text, strSql);
//定义对象数组
TreeNode[] myNodes = new TreeNode[100];
//初始化对象数组
for (int i = 0; i< myNodes.Length; i++)
{
myNodes[i] = new TreeNode();
}
//从表中取数据
while (dr.Read())
{
int iParentNodeId = (int)dr["CatalogID"];
int iMyNodeId = (int)dr["ModuleID"];
if (iParentNodeId != 0)
{
myNodes[iMyNodeId].Text = dr["ModuleName"].ToString();
TreeView1.Nodes.Add(myNodes[iMyNodeId]);
myNodes[iParentNodeId].ChildNodes.Add(myNodes[iMyNodeId]);
}
else
{
myNodes[iMyNodeId].Text = dr["ModuleName"].ToString();
myNodes[iMyNodeId].SelectAction = TreeNodeSelectAction.None;
TreeView1.Nodes.Add(myNodes[iMyNodeId]);
}
}
}
2.................................
public static void CMFtree(TreeView tvCMFTree)
{
DataSet objDS = new DataSet();
SqlDataAdapter daCatalog = new SqlDataAdapter();
daCatalog.TableMappings.Add("Table", "CatalogManager");
daCatalog = new SqlDataAdapter("select CatalogName,CatalogID from CatalogManager where CatalogID in(select CatalogID from FunctionManager)" , SqlHelper.ConnectionString);
SqlDataAdapter daProducts=new SqlDataAdapter ();
daProducts.TableMappings.Add("Table", " ModuleManager");
daProducts = new SqlDataAdapter("select ModuleName,ModuleID ,CatalogID from ModuleManager", SqlHelper.ConnectionString);
SqlDataAdapter daFunction=new SqlDataAdapter ();
daFunction.TableMappings.Add("Table", "FunctionManager");
daFunction = new SqlDataAdapter("select FunctionName ,FunctionID , ModuleID ,CatalogID from FunctionManager", SqlHelper.ConnectionString);
daCatalog.Fill(objDS, "CatalogManager ");
daProducts.Fill(objDS, "ModuleManager");
daFunction.Fill(objDS, "FunctionManager");
//建立父-子 表关系
DataColumn dcCat;
DataColumn dcMod;
DataColumn dcFun;
dcCat = objDS.Tables["CatalogManager"].Columns["CatalogID"];
dcMod = objDS.Tables["ModuleManager"].Columns["CatalogID"];
dcFun = objDS.Tables["FunctionManager"].Columns["ModuleID"];
DataRelation CatToMod = new DataRelation("rnCatToMou", dcCat, dcMod);
DataRelation ModToFun = new DataRelation("rnMouToFun", dcMod, dcFun);
objDS.Relations.AddRange(new DataRelation[] { CatToMod, ModToFun });
int i, j, k;//每层节点数
for (i = 0; i < objDS.Tables["CatalogManager"].Rows.Count; i++)
{
TreeNode ParentNode = new TreeNode();
TreeNode myTreeNode = new TreeNode();
myTreeNode.Text = objDS.Tables["CatalogManager"].Rows[i].ItemArray[1].ToString();
ParentNode.ChildNodes.Add(myTreeNode);
tvCMFTree.Nodes.Add(ParentNode);
for (j = 0; j < objDS.Tables["ModuleManager"].Rows.Count; j++)
{
TreeNode nodeMod = new TreeNode();
nodeMod.Text = objDS.Tables["ModuleManager"].Rows[i].ItemArray[1].ToString();
myTreeNode.ChildNodes.Add(nodeMod);
tvCMFTree.Nodes.Add(myTreeNode);
for (k = 0; k < objDS.Tables["FunctionManager"].Rows.Count; k++)
{
TreeNode nodeFun = new TreeNode();
nodeMod.Text = objDS.Tables["FunctionManager"].Rows[i].ItemArray[1].ToString();
nodeMod.ChildNodes.Add(nodeFun);
tvCMFTree.Nodes.Add(nodeMod);
}
}
}
}
public void databind()
{
CMSRolesDAL r = new CMSRolesDAL();
r.CMFtree(TreeView1);
//TreeView1.DataSource = r.get_tree();
//TreeView1.DataBind();
}
保存新增的角色信息
3..........................................
public void AddTree(int ParentID, TreeNode pNode, TreeView tvCMF)
{
string strSql1 = "select CatalogName,CatalogId ,(select count (*)from CatalogManager)ParentID from CatalogManager ";
string strSql2 = "select distinct m.ModuleID, m.ModuleName,c.CatalogID,(select count(* ) from CatalogManager WHERE c.CatalogID=m.CatalogID)ChildID from CatalogManager c,ModuleManager m order by m.ModuleID";
string strSql3 = "select distinct f.FunctionName,f.FunctionID,f.ModuleID,(select count(* ) from ModuleManager WHERE m.ModuleID=f.ModuleID)LeafID from ModuleManager m,FunctionManager f order by f.FunctionID";
DataSet ds = new DataSet();
SqlDataAdapter daCatalog = new SqlDataAdapter();
daCatalog.TableMappings.Add("Table", "CatalogManager");
daCatalog = new SqlDataAdapter(strSql1, SqlHelper.ConnectionString);
SqlDataAdapter daModule = new SqlDataAdapter();
daModule.TableMappings.Add("Table", " ModuleManager");
daModule = new SqlDataAdapter(strSql2, SqlHelper.ConnectionString);
SqlDataAdapter daFunction = new SqlDataAdapter();
daFunction.TableMappings.Add("Table", "FunctionManager");
daFunction = new SqlDataAdapter(strSql3, SqlHelper.ConnectionString);
daCatalog.Fill(ds, "CatalogManager ");
daModule.Fill(ds, "ModuleManager");
daFunction.Fill(ds, "FunctionManager");
DataView dvTree1 = new DataView(ds.Tables["CatalogManager"]);
DataView dvTree2 = new DataView(ds.Tables["ModuleManager"]);
DataView dvTree3 = new DataView(ds.Tables["FunctionManager"]);
//TreeView tvCMF = new TreeView();
dvTree1.RowFilter = "[ParentID] = " + ParentID;
foreach (DataRowView Row1 in dvTree1)
{
if (pNode == null)
{ //添加根节点
pNode.Text = Row1["CatalogName "].ToString();
tvCMF.Nodes.Add(pNode);
pNode.Expanded = true;
}
else
{
dvTree2.RowFilter = "[CatalogID] = " + ParentID;
foreach (DataRowView Row2 in dvTree2)
{
//̀添加当前目录节点的子节点
//添加符合条件的模块记录
TreeNode Node2 = new TreeNode();
if (pNode == null)
{ //添加根节点
Node2.Text = Row2["ModuleName "].ToString();
pNode.ChildNodes.Add(Node2);
tvCMF.Nodes.Add(Node2);
pNode.Expanded = true;
AddTree(Int32.Parse(Row2["ModuleID "].ToString()), Node2, tvCMF); //再次递归
}
else
{
dvTree3.RowFilter = "[FunctionID] = " + ParentID;
foreach (DataRowView Row3 in dvTree2)
{
TreeNode Node3 = new TreeNode();
if (pNode == null)
{
//̀添加当前模块节点的功能节点
Node3.Text = Row3["FunctionName "].ToString();
tvCMF.Nodes.Add(Node3);
Node3.Expanded = true;
AddTree(Int32.Parse(Row3["FunctionID "].ToString()), Node3, tvCMF); //再次递归
}
}
}
AddTree(Int32.Parse(Row1["CatalogId "].ToString()), pNode, tvCMF); //再次递归
}
}
}
}
- 树与数据库
- B+树与数据库索引
- 数据库与空间数据库
- 如何将树与数据库邦定
- TreeView(树控件)与数据库绑定
- B树与数据库的结合
- 数据库种类与 数据库结构
- 数据库集群与数据库分割
- 数据库范式与数据库设计
- 数据库集群与数据库分割
- MySQL数据库与Oracle数据库
- nosql数据库与内存数据库
- 数据库与关系型数据库
- RAC数据库与asm数据库
- 数据库安全隐患与数据库类型
- 数据库与数据库管理系统
- Mysql数据库备份数据库与还原数据库
- 数据库设计规范与技巧
- 从 .NET 开发人员的角度理解 Excel 对象模型
- 项目今天就开始正式开发了
- 使用AppFuse进行开发的总结
- eclipse plug-in 的开发-- Rich Client 教程
- 好久没有来了,自已顶一下。
- 树与数据库
- 喜欢这种美国式的幽默
- Java多线程编程详解
- 感悟
- 第20回 测试风险的管理
- 深入浅出理解索引结构
- 给所有想成为程序员的朋友
- 最佳睡眠十二点
- javascript的函数