日期:2014-05-18  浏览次数:20741 次

一个DATASET的问题,搞了一个多小时,帮忙解决一下,谢谢

namespace cdapp
{
  public partial class frmMain : Form
  {

  WebReference.ServiceWse swe = new WebReference.ServiceWse();
  DataSet dsMain=null;
   

  public frmMain()
  {
  InitializeComponent();

  }

   
  private void frmMain_Load(object sender, EventArgs e)
  {

   
  DataSet dsMain= DataSetZip.Decompress(swe.GetMainDataSet());

  MessageBox.Show(dsMain.Tables.Count.ToString());
  }


  private void button1_Click(object sender, EventArgs e)
  {
  MessageBox.Show(dsMain.Tables.Count.ToString());
  }
  }
}

上面是把WEBSERVICE返回的一个DATASET存放在dsMain中,通过frmMain_Load里面的
MessageBox.Show(dsMain.Tables.Count.ToString());
显示数量为4


但是当我执行button1_Click的同样代码的时候,却提示错误“未将对象引用设置到对象的实例”,dsMain被设置为null了?
我DATASET已经设置为全局的,请问这是为什么?

------解决方案--------------------
我习惯在实例的全局变量使用时加 this 指示,比如 this.dsMain = ...... ,这样很方便区分使用的变量的作用范围,也能在一定程度上减少这疏忽