想在ds中fill多个数据表,但是每次fill后ds中只有最后一个表。咋回事呢???public class DataRecord
{
  private string SQL;
  private string DSN;
  private string DSTABLE; 
  private SqlConnection conn;
  public SqlDataAdapter da;
  public static DataSet ds;
  
  public DataRecord(string sql,string dsn,string dstable)
  {
     SQL=sql;
     DSN=dsn;
     DSTABLE=dstable;
     conn=new SqlConnection(DSN);
     da=new SqlDataAdapter(SQL,conn);
     ds=new DataSet();
  }
  public DataSet Fill()
  {
     da.Fill(ds,DSTABLE);
     return ds;
   } 
}

解决方案 »

  1.   

    因为你每次调用的时候ds = new DataSet();都新建了实例
      

  2.   

    对啊。呵呵。。DataSet()是引用类型的哦。
      

  3.   

    public class DataRecord
    {
      private string SQL;
      private string DSN;
      private string DSTABLE; 
      private SqlConnection conn;
      public SqlDataAdapter da;
      public static DataSet ds=new DataSet();
      
      public DataRecord(string sql,string dsn,string dstable)
      {
         SQL=sql;
         DSN=dsn;
         DSTABLE=dstable;
         conn=new SqlConnection(DSN);
         da=new SqlDataAdapter(SQL,conn);
      }
      public DataSet Fill()
      {
         da.Fill(ds,DSTABLE);
         return ds;
       } 
    }
      

  4.   

    haha,恍然大悟! 太粗心了!
    public static DataSet ds=new DataSet();应该就对了吧.
      

  5.   

    要是用DATASET更新的话,表一定要有主键
      

  6.   

    这里详细说明了,
    http://blog.csdn.net/zhzuo/archive/2004/08/06/67016.aspx