数据库是这样的:
表名: rjb
字段名: rjb_id rjb_name rjb_year rjb_month rjb_day表名: rjb_year
字段名: year_id year_name year_year表名: rjb_month
字段名: month_id month_year month_month表名: rjb_day
字段名: day_id day_month day_day我写的代码全不都在Page_Load里面了,不知道怎样正确的装载节点,请大家帮忙,谢谢!!private void Page_Load(object sender, System.EventArgs e)
{
// 在此处放置用户代码以初始化页面
string strConnectionString= "data source=(local);initial catalog=rjb;integrated security=SSPI";第二、三个relations被我屏蔽了,不知道怎样装载3、4层的节点。
SqlConnection cnn;
SqlDataAdapter cmUser;
SqlDataAdapter cmYear;
SqlDataAdapter cmMonth;
SqlDataAdapter cmDay;;
DataSet ds=new DataSet(); TreeNode nodeUser;
TreeNode nodeYear;
TreeNode nodeMonth;
TreeNode nodeDay;
cnn=new SqlConnection(strConnectionString);
cnn.Open(); cmUser =new SqlDataAdapter("select rjb_name from rjb", cnn);
cmUser.Fill(ds, "User"); cmYear =new SqlDataAdapter("select year_name,year_year from rjb_year", cnn);
cmYear.Fill(ds, "Year"); cmMonth =new SqlDataAdapter("select month_year,month_month from rjb_month", cnn);
cmMonth.Fill(ds, "Month"); cmDay =new SqlDataAdapter("select day_month,day_day from rjb_day", cnn);
cmDay.Fill(ds, "Day"); DataRelation userYearRel=ds.Relations.Add("userYear", ds.Tables["User"].Columns["rjb_name"], ds.Tables["Year"].Columns["year_name"]);
// DataRelation yearMonthRel=ds.Relations.Add("yearMonth", ds.Tables["Year"].Columns["year_year"], ds.Tables["Month"].Columns["month_year"]);
// DataRelation monthDayRel=ds.Relations.Add("monthDay", ds.Tables["Month"].Columns["month_month"], ds.Tables["Day"].Columns["day_month"]); foreach (DataRow rowUser in ds.Tables["User"].Rows)
{
nodeUser = new TreeNode();
nodeUser.Text = rowUser["rjb_name"].ToString ();
TreeView1.Nodes.Add(nodeUser);
foreach (DataRow rowYear in rowUser.GetChildRows("userYear"))
{
nodeYear=new TreeNode ();
nodeYear.Text =rowYear["year_year"].ToString();
nodeUser.Nodes.Add(nodeYear);
} }
}
表名: rjb
字段名: rjb_id rjb_name rjb_year rjb_month rjb_day表名: rjb_year
字段名: year_id year_name year_year表名: rjb_month
字段名: month_id month_year month_month表名: rjb_day
字段名: day_id day_month day_day我写的代码全不都在Page_Load里面了,不知道怎样正确的装载节点,请大家帮忙,谢谢!!private void Page_Load(object sender, System.EventArgs e)
{
// 在此处放置用户代码以初始化页面
string strConnectionString= "data source=(local);initial catalog=rjb;integrated security=SSPI";第二、三个relations被我屏蔽了,不知道怎样装载3、4层的节点。
SqlConnection cnn;
SqlDataAdapter cmUser;
SqlDataAdapter cmYear;
SqlDataAdapter cmMonth;
SqlDataAdapter cmDay;;
DataSet ds=new DataSet(); TreeNode nodeUser;
TreeNode nodeYear;
TreeNode nodeMonth;
TreeNode nodeDay;
cnn=new SqlConnection(strConnectionString);
cnn.Open(); cmUser =new SqlDataAdapter("select rjb_name from rjb", cnn);
cmUser.Fill(ds, "User"); cmYear =new SqlDataAdapter("select year_name,year_year from rjb_year", cnn);
cmYear.Fill(ds, "Year"); cmMonth =new SqlDataAdapter("select month_year,month_month from rjb_month", cnn);
cmMonth.Fill(ds, "Month"); cmDay =new SqlDataAdapter("select day_month,day_day from rjb_day", cnn);
cmDay.Fill(ds, "Day"); DataRelation userYearRel=ds.Relations.Add("userYear", ds.Tables["User"].Columns["rjb_name"], ds.Tables["Year"].Columns["year_name"]);
// DataRelation yearMonthRel=ds.Relations.Add("yearMonth", ds.Tables["Year"].Columns["year_year"], ds.Tables["Month"].Columns["month_year"]);
// DataRelation monthDayRel=ds.Relations.Add("monthDay", ds.Tables["Month"].Columns["month_month"], ds.Tables["Day"].Columns["day_month"]); foreach (DataRow rowUser in ds.Tables["User"].Rows)
{
nodeUser = new TreeNode();
nodeUser.Text = rowUser["rjb_name"].ToString ();
TreeView1.Nodes.Add(nodeUser);
foreach (DataRow rowYear in rowUser.GetChildRows("userYear"))
{
nodeYear=new TreeNode ();
nodeYear.Text =rowYear["year_year"].ToString();
nodeUser.Nodes.Add(nodeYear);
} }
}
{
nodeUser = new TreeNode();
nodeUser.Text = rowUser["rjb_name"].ToString ();
TreeView1.Nodes.Add(nodeUser);
foreach (DataRow rowYear in rowUser.GetChildRows("userYear"))
{
nodeYear=new TreeNode ();
nodeYear.Text =rowYear["year_year"].ToString();
nodeUser.Nodes.Add(nodeYear);
//Start
DataView dvMonth = ds.Tables["Month"].DefaultView;
dvMonth.RowFilter="month_year="+rowYear["year_year"].ToString();
foreach(DataRowView a in dvMonth)
{
TreeNode nodeMonth = new TreeNode();
nodeMonth.Text=a.Row["month_month"].ToString();
nodeYear.Nodes.Add(nodeMonth); //-------------------------------------
//再用同样的方法增加天的节点
} } }
http://www.chinabs.net/webdotnet/default.asp?infoid=106
我换个角度问好吗,就是怎么才能获取到当前节点的前一个节点。因为现在主要的问题变成了,怎么把重复的用户名去掉,重复的年月去掉了。
比如名为“胡风”的用户分别在2005年的8月15日,8月16日各写了一篇日记,那么树的形状就看上去好像
胡风
2005年
8月
15日
16日
8月
15日
16日
2005年
8月
15日
16日
8月
15日
16日
我想利用一个判断,如果目前想要插入的节点的text值与当前节点前一个节点的text值相等,那么就不插入了。