当然先要有第三方的TREEVIEW控件:)
using Microsoft.Web .UI .WebControls ;
private void InitTree(TreeNodeCollection nds,string mailfrom,long time)
{
//创建一个数据试图
DataView dv=new DataView ();
//创建一个新节点
TreeNode tempnd=new TreeNode ();
//给数据试图添加值
dv.Table =dataset.Tables ["tree"];
//试图过滤
//dv.RowFilter ="MailFrom='" +mailfrom+ "'";
al.Add (mailfrom);
//关闭dataset
dataset.Clear ();
dataset.Dispose ();
myconnection.Close ();
myconnection.Dispose ();
foreach(DataRowView drv in dv)
{
//从试图中获取节点信息
tempnd=new TreeNode ();
//获取节点的ID
tempnd.ID =drv["MailSrc"].ToString ();
//获取节点的TEXT
tempnd.Text =drv["MailSrc"].ToString ();
//获取捕捉时间
string tempnddt=drv["capturetime"].ToString() ;
//将时间转换为LONG便于比较
long temp=long.Parse (tempnddt);
//判定该节点是否可以加入(是否已经存在该节点或者捕捉时间小于父节点的捕捉时间
if(al.Contains (tempnd.Text ) || time>temp)
continue;
else
{
//将该节点加入已存在节点处
al.Add (tempnd.Text );
//树中加入节点
nds.Add (tempnd);
//递归
//设置新的数据集
string tempndtxt=tempnd.Text ;
myconnection=new System.Data.SqlClient.SqlConnection ("server=localhost;uid=sa;pwd=sa;database=zhltest");
myconnection.Open ();
mycommand=new System.Data.SqlClient.SqlCommand ();
mycommand.Connection =myconnection;
mycommand.CommandText ="select * from testmail where MailFrom='" +tempndtxt+ "'";
adapter=new System.Data.SqlClient.SqlDataAdapter (mycommand.CommandText ,myconnection);
dataset=new DataSet ();
//将满足条件的存入dataset中
adapter.Fill (dataset,"tree");
InitTree(tempnd.Nodes,tempnd.ID,temp);
}
}
private void Button1_Click(object sender, System.EventArgs e)
{
string query=treetxt.Text ;
myconnection=new System.Data.SqlClient.SqlConnection ("server=localhost;uid=sa;pwd=sa;database=zhltest");
myconnection.Open ();
mycommand=new System.Data.SqlClient.SqlCommand ();
mycommand.Connection =myconnection;
mycommand.CommandText ="select * from testmail where MailFrom='" +query+ "'";
adapter=new System.Data.SqlClient.SqlDataAdapter (mycommand.CommandText ,myconnection);
dataset=new DataSet ();
//将满足条件的存入dataset中
adapter.Fill (dataset,"tree");
InitTree(TreeView1.Nodes ,query,0);
}