在创建SQLDataReader类的对象时为什么不能直接使用其构造函数,而是调用SqlCommand对象的ExecuteReader方法。代码如下:SqlDataReader myReader;
                             myReader = myCommand.ExecuteReader();

解决方案 »

  1.   

    SqlDataReader myReader;
    myReader = myCommand.ExecuteReader();
    应该可以的
    不要使用SqlDataReader myReader = new SqlDataReader();
      

  2.   

    这是SqlDataReader 的特点啊,因为SqlDataReader是依赖于Command的返回值,直接和数据库相连的,自身是不能创建的。就像DataRow一样,是依赖于DataTable一样。
      

  3.   

    用New SqlDataReader没有什么意义。SqlDataReader本身是从数据库读取值出来的,直接用commander.ExecuteReader可直接生成对象引用。
      

  4.   

    也就是SqlDataReader要有个组件来存它进行数据库操作后的值,而Command有这一功能,对吗?
      

  5.   

    1)SqlDataReader不需要组件存储值,它本身可以存储从数据库读取的值.
    2)而command有这一功能,对吗?
    楼主看看:SqlDataReader dataReader=commander.ExecuteReader();
    上面表达式的意思是:声明一个SqlDataReader ,并把它引用到commander产生的ExecuteReader值.
    可以这样理解:commander.ExecuteReader()的功能定义了该DataReader的属性,如DataReader的连接,从哪个表读取,读取哪些字段等等,它提供了简便的功能,而不需要一一设定DataReader的属性
      

  6.   

    他的构造函数好象就是PRIVATE的,所以不能构造,不过也不需要.
      

  7.   

    IDataReader由IDbCommand.ExecuteReader 方法处理后返回。
      

  8.   

    SqlDataReader只是一个读取器,本身并不保存数据,它是直接从数据库读的~
      

  9.   

    你new 了他也没用啊!
      

  10.   

    SqlDataReader的构造方法为internal的,外部不能访问。