这个我知道,但是很奇怪,既然为NULL了,为什么dataGridView1还能查出数据来...

解决方案 »

  1.   

    使用单步调试,看到底是哪条语句报错
    如果已经显示出数据,很可能不是你贴出的代码报错
    或者这段代码执行了2次,而第二次没有成功读取xml
      

  2.   

     this.dataGridView1.DataSource = xmlDS.Tables[0].DefaultView; 这里有数据了吧。报错的是哪行?
    加个判断
         if (xmlDS.Tables.Count > 0)
    {
     this.dataGridView1.DataSource = xmlDS.Tables[0].DefaultView;
    }
    注意有些xml节点是空的,需要处理下
      

  3.   

    真搞不明白,编程的时候都不喜欢逻辑判断,也不管DataSet和DataTable里面是否有数据,就敢直接访问,这几天遇到这种编程习惯的人太多了,都不知道什么叫防御性编程么?
      

  4.   

    设置个断点看看。
    要养成好的编程习惯。在得到返回值后,在进一步操作之前要加判断,比如你返回个dataset,在进一步操作前要判断是否null,是有有表数据,是否有行数据,这样程序更经得起敲打。