如何将数据库image类型读取成为byte[]类型,利用sqldatareader

解决方案 »

  1.   


                //假设da为SqlDataReader
                while (da.Read())
                {
                    byte[] data = da["Image字段"] as byte[];
                    
                }
      

  2.   

    刚自己在网上搜索之后,总结的另 一写法(适合大图):
     public byte[] getImage(SqlDataReader sqlrd,int id)
            {
                int buffersize = 100;
                byte[] outbyte = new byte[100];
                //用来持有getbytes所返回的字节数目
                long retval;
                //输出起始位置
                long startIndex = 0;
                startIndex = 0;
                //将字节读入outbyte【】并返回所获得的字节数
                retval = sqlrd.GetBytes(id, startIndex, outbyte, 0, buffersize);
                while (retval == buffersize)
                {
                        //将起始位置重新设置成上一次所该取的缓存区的末端,并将继续将字节如若byte【】中
                        startIndex += buffersize;
                        retval = sqlrd.GetBytes(id, startIndex, outbyte, 0, buffersize);             }
                 return outbyte;
              
            }