-------------------第一种------------------------------------------public static DataTable ConvertdrTodt(SqlDataReader dr) 
    {
        DataTable dt = new DataTable();
        for (int i = 0; i < dr.FieldCount;i++ )//分析数据列,以此来构造dt结构
        {
            DataColumn mydc = new DataColumn();//对象化DataTable中的列
            mydc.DataType = dr.GetFieldType(i);//获取DataReader中列的数据类型
            mydc.ColumnName = dr.GetName();    //获取DataReader中列的名称
            dt.Columns.Add(mydc);              //将新建的列mydc加入到DaTable中(即列集合)
        }
        while (dr.Read())
        {
            DataRow mydrow = dt.NewRow();        //以上面建立好dt结构来对象化一行新的数据行
            for (int i = 0; i < dr.FieldCount; i++)
            {
                mydrow[i] = dr[i].ToString;      //把DataReder的每行数据填入Table中的每行row
            }
            dt.Rows.Add(mydrow);                 //所有row组成一个Table(即row的集合)
            mydrow = null;
        }
        dr.Close();
        return dt;
    }-------------------第二种------------------------------------------           SqlDataReader dr = DataPublicVar.sqlcmd.ExecuteReader();
           DataTable dt = new DataTable();
           dt.Load(dr);                     //直接Load??
           DataPublicVar.sqlcn.Close();
           dr.Close();
           return dt;第二种直接load也可以??
我试过的确可以过。
那不是很方便??
为什么大家不用第二中方法呢?谢谢解答