treeview动态提取sql中数据(有好方法可以指导下)
我用vs2003和sql....代码如下:但是在运行时候老提示myAdapter.Fill(data,"tree"); 未将对象应用到实例..还有,我用this.ViewState["data"]=data; 传递参数,可以吧.?请高手指点.
using System;
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Data.SqlClient;
using Microsoft.Web.UI.WebControls;
using System.Web;
using System.Web.SessionState;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;
namespace sqltree
{
/// <summary>
/// WebForm1 的摘要说明。
/// </summary>
public class WebForm1 : System.Web.UI.Page
{
protected SqlConnection Conn;
protected SqlDataAdapter myAdapter;
protected DataSet data;
protected string query;
protected Microsoft.Web.UI.WebControls.TreeView TreeView1;
private void Page_Load(object sender, System.EventArgs e)
{
if(!Page.IsPostBack)
{ string con="server=.;uid=sa;pwd=123456;database=fdb";
Conn=new SqlConnection(con);
CreateDataSet();
InitTree(TreeView1.Nodes,"0");
}// 在此处放置用户代码以初始化页面
}
private DataSet CreateDataSet()
{
query="select * from tree";
myAdapter=new SqlDataAdapter(query,Conn);
DataSet data=new DataSet();
myAdapter.Fill(data,"tree");
this.ViewState["data"]=data;
return data;
}
private void InitTree(TreeNodeCollection Nds,string parentId)
{
DataSet data=(DataSet) this.ViewState["data"];
TreeNode tmpNd;
if(data.Tables.Count>0)
{
DataRow[] rows=data.Tables[0].Select("ParentId='"+parentId+"'") ;
foreach(DataRow row in rows)
{
tmpNd=new TreeNode();
tmpNd.ID=row["NodeId"].ToString();
tmpNd.Text =row["NodeName"].ToString();
tmpNd.NavigateUrl=row["url"].ToString();
Nds.Add(tmpNd);
//InitTree(tmpNd.Nodes,tmpNd.ID);
}
}
}
#region Web 窗体设计器生成的代码
override protected void OnInit(EventArgs e)
{
CODEGEN: 该调用是 ASP.NET Web 窗体设计器所必需的。
InitializeComponent();
base.OnInit(e);
}
/ <summary>
/ 设计器支持所需的方法 - 不要使用代码编辑器修改
/ 此方法的内容。
/ </summary>
private void InitializeComponent()
{
this.Load += new System.EventHandler(this.Page_Load);
}
#endregion
}
}