private DataSet createDataSet()//返回数据库表
    {
       DataSet dset = new DataSet();
       string[] ParameterStr = new string[] { "00000001" };
       SqlDataAdapter da = UserData.ComSqlDataAdapter("MenuSelect", "Reprot_Mangager", ParameterStr);
       dset.Clear();
       da.Fill(dset);
       return dset;
    }
上面的一段代码执行出现下面的错误。

Line 32:        da.Fill(dset);

提示错误:
Exception Details: System.NullReferenceException: Object reference not set to an instance of an object.请问各位高手这是怎么回事,要怎么改呀!

解决方案 »

  1.   

    dset.Clear(); 干啥呀才new出来的。还有 da 是否是 null ?
      

  2.   

    报错信息很明显了,对象引用并不是一个对象的实例
    private DataSet createDataSet()//返回数据库表
      {
      DataSet dset = new DataSet();
      string[] ParameterStr = new string[] { "00000001" };
      SqlDataAdapter da = UserData.ComSqlDataAdapter("MenuSelect", "Reprot_Mangager", ParameterStr);
       //dset.Clear(); 这句去掉,你将之前创建的DataSet的实例给干掉了,接下来你的da去填充哪个dataset呀??
      da.Fill(dset);
      return dset;
      }
      

  3.   

    LZ引用了null变量~~~~~~~~~检查数据源~~~
      

  4.   

    刚刚new DataSet();这时那个dset什么都没有
    然后再clear(),肯定报空引用了。那句clear(),画蛇添足,去掉即可。
      

  5.   

    dset.Clear去掉,断点调试看SqlDataAdapter对象是否为空。
      

  6.   

    SqlDataAdapter da = UserData.ComSqlDataAdapter("MenuSelect", "Reprot_Mangager", ParameterStr);很明显是这个的问题,da = null;
      

  7.   

    提示错误:
    Exception Details: System.NullReferenceException: Object reference not set to an instance of an object.说明你的建立的new对象实际上并没有建立,还是null值。
    所以当bug运行到代码 da.Fill(dset);这行的时候,你把鼠标放在da或者dset上面,肯定有一个是null值。
      

  8.   


    +1
    断点看下UserData.ComSqlDataAdapter这个方法
      

  9.   

    其实用错了地方而已,我想如果用,da.tables.Clear();是不是就没问题了,如果直接用da.Clear();那就是把da给整个清掉了,换成清空里面表,则可以再次填充;不知道对不对!献丑了!!