现正开发一个小系统,点击一个按钮就会自动执行一个存储过程,根据条件不同抽出若干段数据,并将这些数据分别存到同一个Excel的不同Sheet里面。
通过:
cnt.Open();  da2.Fill(dt1);  cnt.Close();
System.Data.DataTable []dt = new DataTable[1];
dt[0]=dt1;

已经能够实现将抽出的第一段数据放到 DataTable dt1 并转到 dt[0],然后输出到Excel;
但因为执行存储过程一下子输出多段数据,只能使用
DataSet,cnt.Open();  da2.Fill(ds1);  cnt.Close();
System.Data.DataTable []dt = new DataTable[1];
dt[0]=ds1.Tables[0];

但运行到 dt[0]=ds1.Tables[0]; 就会出错
请问该如何解决这个问题呢?

解决方案 »

  1.   

    调试看看你DS里面的数据是什么样的
    你这样申明一个DATATABLE的数组好奇怪
      

  2.   

    什么错误?信息贴来看看
    你可以先判断
    ds1.Tables.Count看看有DataSet里面有没有数据
      

  3.   

    dataset可以存了,为何还要多些再定义datatable数组?
    ds.tables[0]也就是一个datatable来的了
    再说你只给一个datatable赋值,为何要定义一个数组?
      

  4.   


    定义数组,是因为执行存储过程输出多段数据,除了 dt[0]=ds1.Tables[0]; 还有dt[1]=ds1.Tables[1]; 等等
      

  5.   


    我用的 try catch ,当执行到 dt[0]=ds1.Tables[0]; 就跳到错误处理了
    所以也没什么错误提示
      

  6.   

    那直接放在一个dataset里不行嘛!为什么还要这样做?
    你要哪段直接就ds1.Tables["索引或者表名"];可以了! 
      

  7.   

    那你在把Catcth改成catch(Exception ex)
    {
    MessageBox.Show(ex.message);
    }
    看看提示什么错误
      

  8.   


    这样好像不行,系统调试说,System.Exception中没有message的定义
      

  9.   

    既然有DataSet还要DataTable数组做甚