我在一个类的不同方法中传递一个dataset,可是总是显示错误信息“未将对象引用设置到对象的实例”,请问应该怎样写才对?非常感谢!下面是程序:public class EleManager : System.ComponentModel.Component
{
        ............        private DataSet dataS;
public void showTree()
{
   bool showFlag=false;
            SqlConnection CN = new SqlConnection();
            firstNodeCode="";    try
   {
CN.ConnectionString=System.Configuration.ConfigurationSettings.AppSettings.Get("Dbpath");;
CN.Open();
 
firstNodeCode="a003"; SqlDataAdapter adp = new SqlDataAdapter("SELECT EleTree.EleNode, EleTree.EleCode, EleTree.EleParCode,Element.EleName FROM EleTree INNER JOIN Element ON EleTree.EleCode = Element.EleCode WHERE (Element.OrgCode = '"+orgCode+"') ORDER BY EleTree.EleNode",CN); adp.Fill(dataS);//对dataS赋值 }
catch (Exception err1)
{
   errInfo.Text+=err1.Message;
   errInfo.Text+=err1.Source;
}
finally
{
   CN.Close();
}
AddTree(firstNodeCode, (TreeNode)null);
TreeView1.Visible = true;
}     private void AddTree(string ParentID,TreeNode pNode) 
    {

DataSet ds=(DataSet)dataS;
DataView dvTree = new DataView(ds.Tables[0]);  //错误:未将对象引用设置到对象的实例         dvTree.RowFilter =  "[EleParCode] = " + "'"+ParentID+"'";         foreach(DataRowView Row in dvTree) 
{
    TreeNode Node=new TreeNode() ;
    if(pNode == null) 
    {    
Node.Text = Row["EleName"].ToString();
TreeView1.Nodes.Add(Node);
Node.Expanded=true;
AddTree(Row["EleCode"].ToString(), Node);    
    } 
    else 
    {   
Node.Text = Row["EleName"].ToString();
pNode.Nodes.Add(Node);
Node.Expanded = true;
AddTree(Row["EleCode"].ToString(),Node);    
     }
}                   
    } 
...............
}       

解决方案 »

  1.   

    DataView dvTree = new DataView(ds.Tables[0]);  //错误:未将对象引用设置到对象的实例
    改成: 
    DataView dvTree = ds.Tables[0].DefaultView; 
     看看
      

  2.   

    private DataSet dataS; 你的dataS从来就没有New啊
      

  3.   

    static private DataSet dataS;
      

  4.   

    修改:
    private void AddTree(string ParentID,TreeNode pNode) 
        {

    //DataSet ds=(DataSet)dataS;
    //DataView dvTree = new DataView(ds.Tables[0]);  //错误:未将对象引用设置到对象的实例         DataView dvTree = dataS.Tables[0].DefaultView;
             dvTree.RowFilter =  "[EleParCode] = " + "'"+ParentID+"'";         foreach(DataRowView Row in dvTree) 
    {
        TreeNode Node=new TreeNode() ;
        if(pNode == null) 
        {    
    Node.Text = Row["EleName"].ToString();
    TreeView1.Nodes.Add(Node);
    Node.Expanded=true;
    AddTree(Row["EleCode"].ToString(), Node);    
        } 
        else 
        {   
    Node.Text = Row["EleName"].ToString();
    pNode.Nodes.Add(Node);
    Node.Expanded = true;
    AddTree(Row["EleCode"].ToString(),Node);    
         }
    }
      

  5.   

    在声明dataset的地方这么修改:private DataSet dataS = new DataSet;
      

  6.   

    在声明dataset的地方这么修改:private DataSet dataS = new DataSet();