C# 在为treeview编写xml时循环
我从Web表单应用程序中的SQL数据库读取数据,并将其写入XML文件,然后使用TreeView控件显示它们。但问题是,我只能从数据库中读取ParentID为0的树,并使用TreeView显示它们。如何在树视图上显示ParentID为1的子树? 从数据库中读取:C# 在为treeview编写xml时循环,c#,asp.net,xml,wpf,treeview,C#,Asp.net,Xml,Wpf,Treeview,我从Web表单应用程序中的SQL数据库读取数据,并将其写入XML文件,然后使用TreeView控件显示它们。但问题是,我只能从数据库中读取ParentID为0的树,并使用TreeView显示它们。如何在树视图上显示ParentID为1的子树? 从数据库中读取: public DataTable GetMenu(int parentId) { DataTable dt = new DataTable(); using (SqlConnection con = new SqlConn
public DataTable GetMenu(int parentId)
{
DataTable dt = new DataTable();
using (SqlConnection con = new SqlConnection("Data Source =(Local);Initial Catalog=Tajari;Integrated Security=True;"))
{
con.Open();
SqlCommand cmd = new SqlCommand("select * from TBLJobs where ParentId=@ParentId", con);
cmd.Parameters.AddWithValue("@ParentId", parentId);
SqlDataAdapter da = new SqlDataAdapter(cmd);
da.Fill(dt);
con.Close();
return dt;
}
}
创建XML文件代码:
private void CreateNodes(int parentId)
{
DataTable dt = GetMenu(0);
foreach(DataRow dr in dt.Rows)
{
writer.WriteStartElement("Node");
writer.WriteStartAttribute("Id");
writer.WriteValue(dr["MenuId"].ToString());
writer.WriteEndAttribute();
writer.WriteStartAttribute("Name");
writer.WriteValue(dr["MenuName"].ToString());
writer.WriteEndAttribute();
writer.WriteEndElement();
}
}
使用XMLWriter写入XML文件
public void CreateMenu()
{
using (writer = XmlWriter.Create(Server.MapPath("Temp\\Menu.XML")))
{
writer.WriteStartDocument();
writer.WriteStartElement("Menu");
CreateNodes(0);
writer.WriteEndDocument();
}
}
private void CreateNodes(int parentId)
{
DataTable dt = GetMenu(0);
foreach(DataRow dr in dt.Rows)
{
writer.WriteStartElement("Node");
writer.WriteStartAttribute("Id");
writer.WriteValue(dr["MenuId"].ToString());
writer.WriteEndAttribute();
writer.WriteStartAttribute("Name");
writer.WriteValue(dr["MenuName"].ToString());
writer.WriteEndAttribute();
**CreateNodes(Convert.ToInt32(dr["MenuId"]));**
writer.WriteEndElement();
}
}