public partial class TreeView : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
tree(); }
private void tree()
{
DataView dv = new DataView();
SqlDataAdapter sda;
DataSet ds;
string tab = "table";
try
{
SqlConnection con = new SqlConnection("server=.;database=ysenTest;uid=sa;pwd=;");
sda = new SqlDataAdapter("select * from class where classID=0", con);
ds = new DataSet();
sda.Fill(ds, tab);
dv = ds.Tables[tab].DefaultView;
TreeNode tmpNd; foreach (DataRowView drv in dv)
{
tmpNd = new TreeNode();
tmpNd.Text = drv["className"].ToString();
tmpNd.Value = drv["ID"].ToString();
TreeView1.Nodes.Add(tmpNd);
childclass(tmpNd, Convert.ToInt32(drv["ID"]));
}
}
catch (Exception ee)
{
throw (ee);
} }
private void childclass(TreeNode nds, int parentID)
{
DataView dv = new DataView();
SqlDataAdapter sda;
DataSet ds;
string tab = "table1";
try
{
SqlConnection con = new SqlConnection("server=.;database=ysenTest;uid=sa;pwd=;");
sda = new SqlDataAdapter("select * from class", con);
ds = new DataSet();
sda.Fill(ds, tab);
dv = ds.Tables[tab].DefaultView;
dv.RowFilter = "classID <> 0 and id=" + parentID + "";
TreeNode tmpNd;
foreach (DataRowView drv in dv)
{
tmpNd = new TreeNode();
tmpNd.Text = drv["className"].ToString();
tmpNd.Value = drv["ID"].ToString();
nds.ChildNodes.Add(tmpNd);
childclass(nds, Convert.ToInt32(drv["ID"].ToString())); }
}
catch (Exception ee)
{
throw (ee);
}
}}上面的代码为什么当我运行到子节点 foreach (DataRowView drv in dv)语句的时候就退出不执行了??什么原因??
{
protected void Page_Load(object sender, EventArgs e)
{
tree(); }
private void tree()
{
DataView dv = new DataView();
SqlDataAdapter sda;
DataSet ds;
string tab = "table";
try
{
SqlConnection con = new SqlConnection("server=.;database=ysenTest;uid=sa;pwd=;");
sda = new SqlDataAdapter("select * from class where classID=0", con);
ds = new DataSet();
sda.Fill(ds, tab);
dv = ds.Tables[tab].DefaultView;
TreeNode tmpNd; foreach (DataRowView drv in dv)
{
tmpNd = new TreeNode();
tmpNd.Text = drv["className"].ToString();
tmpNd.Value = drv["ID"].ToString();
TreeView1.Nodes.Add(tmpNd);
childclass(tmpNd, Convert.ToInt32(drv["ID"]));
}
}
catch (Exception ee)
{
throw (ee);
} }
private void childclass(TreeNode nds, int parentID)
{
DataView dv = new DataView();
SqlDataAdapter sda;
DataSet ds;
string tab = "table1";
try
{
SqlConnection con = new SqlConnection("server=.;database=ysenTest;uid=sa;pwd=;");
sda = new SqlDataAdapter("select * from class", con);
ds = new DataSet();
sda.Fill(ds, tab);
dv = ds.Tables[tab].DefaultView;
dv.RowFilter = "classID <> 0 and id=" + parentID + "";
TreeNode tmpNd;
foreach (DataRowView drv in dv)
{
tmpNd = new TreeNode();
tmpNd.Text = drv["className"].ToString();
tmpNd.Value = drv["ID"].ToString();
nds.ChildNodes.Add(tmpNd);
childclass(nds, Convert.ToInt32(drv["ID"].ToString())); }
}
catch (Exception ee)
{
throw (ee);
}
}}上面的代码为什么当我运行到子节点 foreach (DataRowView drv in dv)语句的时候就退出不执行了??什么原因??
放在foreach (DataRowView drv in dv)前 要用c#
dv.RowFilter = "classID <> 0 and id=" + parentID + "";是不是没有数据的缘故?
id classname classid
---------------------
1 音乐欣赏 0
2 BT专区 0
3 文学欣赏 0
4 电影插曲 1
5 欧美摇滚 1
6 日韩音乐 1
7 古典音乐 1
8 成人BT 2
9 电影BT 2
10 动漫BT 2
11 小说欣赏 3
12 原传文笔 3
13 个人随笔 3