调不了SqlAdapter是密封类,不能继承,Protected的方法在外部是不能调用的

解决方案 »

  1.   

    我见过你的问题,你是需要用流的方式读大的字段吧用SqlDataAdapter是不行的不过你可以用DataReader读,like:SqlCommand cmd = new SqlCommand( "select * from scripts",conn );conn.Open();SqlDataReader reader = cmd.ExecuteReader( CommandBehavior.SequentialAccess );while( reader.Read() )
    {
       //读取
    }
      

  2.   

    非常感谢,我就是在找一个办法来替代datareader,如果实在不行我就用datareader吧
    但是我不明白,为什么有这样的功能非要保护起来不给人用呢,真是搞不懂
    明 天开始用datareader写,搞了两天,还是不行,呵
    谢谢 了
      

  3.   

    因为Fill方法它重载了很多,它保护起来不让人用证明如果这样用会有问题
    实际上涉及到类的设计上面,我们经常会碰到这样的设计,同样的方法重载几个版本,有暴露在外的接口方法,也有内部使用的实际方法我想因为DataAdapter内部也是DataReader实现的,为了防止外部影响内部的Reader,所以CommandBehavior是不让自己传递的