有三个Form:form1,form2,form3。为了在三个form中传递DataSet,我在form1中定义了一个public static类型的DataSet,,这个DataSet通过读xml文件初始化。程序第一次运行时没有问题,结束的时候调用了DataSet的Clear()方法,然后部退出程序,继续激活form1的时候,DataSet并没有将新的文件读入,是空的。
这个问题应该怎么解决啊,是不是一个DataSet不能够重新读入xml文件?
大家帮帮忙啊

解决方案 »

  1.   

    可能是你 不退出程序,继续激活form1的时候没有将这个DataSet通过读xml文件初始化
      

  2.   

    我觉得最好不要用静态字段,最好能通过传值进行,反正DataSet是引用类型的。另外如果你要将数据变动在下次读出来,写入XML文件是肯定的了,不知你有没有做这一步?
      

  3.   

    我在form1中初始化的DataSet,写在一个button的click事件中,同时将form2的ShowDialog方法写在里面,也就是说应该每次点击这个button就会读入一次文件,而且每次读入的文件都是不一样的,但是结构是一样的,只有第一次可以填充数据,第二次的话还是原来的数据。
    调用Clear()方法后再点击按钮,他就不读数据了。里面是空的,抛异常。
    到底应该怎么做啊
      

  4.   

    DataSet作为static变量,那每个form对他的操作都会延续到下一步,
    是不是你把DataSet置为了null,然后调用DataSet.Clear()就异常,
    看看是否有必要调用DataSet.AcceptChanges();
      

  5.   

    新建一个类,假如为PublicClass,在里面放一个public static DataSet dt;
    在其他窗口中直接使用 PublicClass.dt.Rows……就都可以了