当然先要有第三方的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); } 
|