TreeView如何绑定数据库

花雪如梦 2009-04-04 09:06:44
表名为:学校专业表MajorT
字段:MajorName专业名称
ToCollegeName所属学院
想通过TreeView控件绑定专业表,根结点为学院,子结点为相应的专业
请问我写的代码该怎么修改?(现在只能显示出一个根结点)还有那写XML文件那的相对路径怎么写?

谢谢!
(不愿看的话,也可另附你们的代码,非常感谢)


protected void Page_Load(object sender, EventArgs e)
{
SqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings["SQLCONNECTIONSTRING"].ConnectionString);
string collMcName = "select ToCollegeName,MajorName from MajorT";
SqlCommand cmd = new SqlCommand(collMcName,conn);

//新建Xml文档
XmlDocument xmlDoc = new XmlDocument();
XmlElement xmlRoot, xmlElem;

//插入Xml声明
XmlDeclaration xmlDec = xmlDoc.CreateXmlDeclaration("1.0", null, "yes");
xmlDoc.InsertBefore(xmlDec, xmlDoc.DocumentElement);//xmlDoc.DocumentElement获取文档的根


try
{
conn.Open();
SqlDataReader dr = cmd.ExecuteReader();

ArrayList alElements = new ArrayList();//用来记录根结点元素

//插入第一个结点
dr.Read();
xmlElem = xmlDoc.CreateElement((string)dr["ToCollegeName"]);
alElements.Add(xmlElem);
xmlDoc.InsertAfter(xmlElem, xmlDec);//xmlElem结点插入到声明xmlDec之后

//插入后面的子结点
while (dr.Read())
{
//创建子结点
xmlElem = xmlDoc.CreateElement((string)dr["MajorName"]);
alElements.Add(xmlElem);

//找到父结点,并添加到其下
xmlRoot = xmlDoc.CreateElement((string)dr["ToCollegeName"]);
xmlRoot.AppendChild(xmlElem);
}

// 保存xml文件
FileStream fs = new FileStream("E:/Teaching_Outline_NMS/Xml/tvXml.xml", FileMode.Create);
xmlDoc.Save(fs);
fs.Close();

XmlDataSource1.DataFile = "E:/Teaching_Outline_NMS/Xml/tvXml.xml";
TreeView1.DataSource = XmlDataSource1;
TreeView1.DataBind();

}

catch(SqlException ex)
{
Response.Write(ex.Message);
}
finally
{
conn.Close();
}

}
...全文
174 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
li_dao_hang_1989 2009-04-05
  • 打赏
  • 举报
回复
up……
cs78799662 2009-04-05
  • 打赏
  • 举报
回复
ding
lomiolian 2009-04-05
  • 打赏
  • 举报
回复
抱着学习的态度,观摩
fuzijing 2009-04-05
  • 打赏
  • 举报
回复
......
gui0605 2009-04-04
  • 打赏
  • 举报
回复

private void BindTableData(DataBaseSchema dbs)
{
treeView1.Nodes[0].Nodes.Clear();
DBSchemaProvider sp = DBSchemaProvider.Instance();
IList<TableSchema> list = sp.GetTableSchemaList(dbs);
foreach (TableSchema ts in list)
{
TreeNode _dbNode = new TreeNode();
_dbNode.ImageIndex = 1;
_dbNode.SelectedImageIndex = 1;
_dbNode.ToolTipText = ts.TableName;
_dbNode.Name = _dbNode.Text = ts.TableName;
_dbNode.Tag = ts;
_dbNode.ContextMenuStrip = DataBaseTreeMenu;
ts.ConnectionString = dbs.ConnectionString;
IList<ColumnSchema> columnList = sp.GetColumnSchemaList(ts);
foreach (ColumnSchema cs in columnList)
{
TreeNode _columnNode = new TreeNode();
_columnNode.ImageIndex = 1;
if(cs.IsPrimaryKey)
_columnNode.ImageIndex = 3;
else if(cs.IsForeignKey)
_columnNode.ImageIndex = 0;
_columnNode.SelectedImageIndex = 1;
_columnNode.ToolTipText = cs.ColumnName;
_columnNode.Name = _columnNode.Text = cs.ColumnName;
_columnNode.Tag = cs;
if (!_dbNode.Nodes.ContainsKey(_columnNode.Name))
_dbNode.Nodes.Add(_columnNode);
}
if (!treeView1.Nodes[0].Nodes.ContainsKey(_dbNode.Name))
treeView1.Nodes[0].Nodes.Add(_dbNode);
}
}
wuyq11 2009-04-04
  • 打赏
  • 举报
回复
先绑定学院,通过学院查询专业绑定数据
protected void initTree(DataTable dt, string nFatherid, TreeNode fatherNode)
{
DataView dv = new DataView(dt);

dv.RowFilter = "shangjjgbh='" + nFatherid + "'";
foreach (DataRowView Row in dv)
{
TreeNode node = new TreeNode();
if (fatherNode.Value == "0")//根节点
{
node.Value = Row["XTBH"].ToString();
node.Text = Row["MC"].ToString();
node.NavigateUrl = "";
node.ImageUrl = "../images/folder.gif";
fatherNode.ChildNodes.Add(node);
if(IsHasChildRy(Row["XTBH"].ToString()))
{
DataSet ds //查询是否有数据
if (ds.Tables[0].Rows.Count > 0)
{
foreacg (DataRow dr in ds.Tables[0].Rows)
{
TreeNode no = new TreeNode();
no.Value =dr["XTBH"].ToString() ;
no.Text =dr["xingm"].ToString();
no.NavigateUrl = "";
no.ImageUrl = "../images/man.gif";
node.ChildNodes.Add(no);
}
}
}
initTree(dt,Row["XTBH"].ToString(), node);//递归
}
else
{
node.Text = Row["jigmc"].ToString();
node.Value = Row["XTBH"].ToString();
node.ImageUrl = "../images/jg.gif";
fatherNode.ChildNodes.Add(node);
}
}

}
阿云ivan 2009-04-04
  • 打赏
  • 举报
回复
现现身先

62,268

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧