private void button2_Click(object sender, EventArgs e)
  {
  try
  {
  SqlConnection con = dbu.getConnection();
  //SqlCommand com = con.CreateCommand();
  Productdiscount pd = new Productdiscount();
  Serviceinformation si = new Serviceinformation();
  if (MessageBox.Show("您确定要导出吗?", "提示",
  MessageBoxButtons.OKCancel, MessageBoxIcon.Question) == DialogResult.OK)
  {
  ExportDate ep = new ExportDate();
  //ep.dgvOutPutExcel(dataGridView1);
  string se = "select sI_serviceName,aD_activityDiscount from tb_activityDiscount ad,tb_serviceInformation si where ad.aD_activityDiscountId=si.sI_serviceInformationId";
  DataSet ds = new DataSet();
  SqlDataAdapter sda = new SqlDataAdapter(se, con);
  sda.Fill(ds);
  int i = ds.Tables[0].Rows.Count;
  MessageBox.Show("ss" + i);
  //si.dataGridView1.DataSource = ds.Tables[0];
  //int i = ds.Tables[0].Rows.Count;
  //MessageBox.Show("ss"+i);  //ep.dgvOutPutExcel(ds.Tables);
  ep.dgvOutPutExcel(si.dataGridView1);  }
  }
  catch (Exception ex)
  {
  MessageBox.Show("有异常" + ex.Message);
  dbu.closeConnection();
    
  }
  }
提示我未将对象应用到实力这是什么意思啊
ds你面有数据
si.dataGridView1.DataSource = ds.Tables[0];
就这句有错误

解决方案 »

  1.   

    加上一个条件
    if(ds.Tables[0].Rows.Count>0)
      

  2.   

    断点到那行,看下
    si 是否为 null
    dataGridView1 是否为 null
    ds 是否为 null
      

  3.   

    si.dataGridView1现在就这个为空。
      

  4.   

    Serviceinformation si = new Serviceinformation();
    si.dataGridView1.DataSource = ds.Tables[0];
    si.dataGridView1 被new了吗?
      

  5.   


    不着急的话慢慢调试,你这个问题可能是因为你的Serviceinformation 这个类里面就声明了一个dataGridView1,但是没有实例化