我现在写了从数据库读取数据返回成树型!但是有一个返值会出错!
private void Page_Load(object sender, System.EventArgs e)
{
        initgettree(Tvwdb.Nodes,"0");
}
private void initgettree(TreeNodeCollection tnccurrent,string sparentid)
{
DataView dvw=new DataView();
         TreeNode nodtemp;
string strtempid;
dvw.Table=ds.Tables["mytable"];
dvw.RowFilter="parentid='"+sparentid+"'";
foreach(DataRowView drv in dvw)
{
nodtemp   =   new   TreeNode();   
nodtemp.ID   =   drv["nodeid"].ToString();   
nodtemp.Text   =   drv["nodename"].ToString();   
nodtemp.NavigateUrl   =   drv["icon"].ToString();   
//nodtemp.ImageUrl   =   drv["iconl"].ToString();   
nodtemp.Target   =   "Main";   
    
tnccurrent.Add(nodtemp);   
strtempid   =   drv["parentid"].ToString();   
//递归调用   
initgettree(nodtemp.Nodes,nodtemp.ID);  
}
}
在initgettree(Tvwdb.Nodes,"0");调用是会提示说:未将对象引到实例

解决方案 »

  1.   

    应该是这句的问题
    dvw.Table=ds.Tables["mytable"];
    每次page_load时候,你的ds时候真正初始化了。
      

  2.   

    应该是这句的问题
    dvw.Table=ds.Tables["mytable"];
    每次page_load时候,你的ds是否真正初始化了
      

  3.   

    using System;
    using System.Collections;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Web;
    using System.Web.SessionState;
    using System.Web.UI;
    using System.Web.UI.WebControls;
    using System.Web.UI.HtmlControls;
    using System.Data.SqlClient;
    using Microsoft.Web.UI.WebControls;
    using System.Configuration;
    namespace study
    {
    /// <summary>
    /// right1 的摘要说明。
    /// </summary>
    public class right1 : System.Web.UI.Page
    {
    protected System.Web.UI.WebControls.Label Label2;
    protected System.Web.UI.WebControls.Label Label1;
    protected Microsoft.Web.UI.WebControls.TreeView Tvwdb; protected System.Data.SqlClient.SqlConnection conn;
    protected System.Data.SqlClient.SqlDataAdapter ad;
    protected DataSet ds;
    protected string strsql;

    private void Page_Load(object sender, System.EventArgs e)
    {
    // 在此处放置用户代码以初始化页面
    string str="server=localhost;database=mygps;uid=sa;pwd=123";
    conn=new SqlConnection(str);
    createdataset();
    initgettree(Tvwdb.Nodes,"0");
    }
    private DataSet createdataset()
    {
    strsql="select * from tree_info";
    ad=new SqlDataAdapter(strsql,conn);
    ds=new DataSet();
    ad.Fill(ds,"mytable");
    return ds;
    }
    private void initgettree(TreeNodeCollection tnccurrent,string sparentid)
    {
    DataView dvw=new DataView();
                TreeNode nodtemp;
    string strtempid;
    dvw.Table=ds.Tables["mytable"];
    dvw.RowFilter="parentid='"+sparentid+"'";
    foreach(DataRowView drv in dvw)
    {
    nodtemp   =   new   TreeNode();   
    nodtemp.ID   =   drv["nodeid"].ToString();   
    nodtemp.Text   =   drv["nodename"].ToString();   
    nodtemp.NavigateUrl   =   drv["icon"].ToString();   
    //nodtemp.ImageUrl   =   drv["iconl"].ToString();   
    nodtemp.Target   =   "Main";   
        
    tnccurrent.Add(nodtemp);   
    strtempid   =   drv["parentid"].ToString();   
    //递归调用   
    initgettree(nodtemp.Nodes,nodtemp.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
    }
    }
    所有程序是这样!
    我有实例化dataset呀!
      

  4.   

    错误提示是:
    未将对象引用设置到对象的实例。 
    说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。 
    异常详细信息: System.NullReferenceException: 未将对象引用设置到对象的实例。
    源错误: 
    行 36:  conn=new SqlConnection(str);
    行 37:  createdataset();
    行 38:  initgettree(Tvwdb.Nodes,"0");
    行 39:  }
    行 40:  private DataSet createdataset()