把数据库Image,Text类型存储成文件

来源:互联网 发布:朱元璋注老子知乎 编辑:程序博客网 时间:2024/04/29 10:42

//select pid,image from a
  FileStream fs; // Writes the BLOB to a file (*.bmp).
            BinaryWriter bw; // Streams the BLOB to the FileStream object.


            int bufferSize = 100; // Size of the BLOB buffer.
            byte[] outbyte = new byte[bufferSize]; // The BLOB byte[] buffer to be filled by GetBytes.
            long retval; // The bytes returned from GetBytes.
            long startIndex = 0; // The starting position in the BLOB output.


            string pub_id = ""; // The publisher id to use in the file name.
          
       
            while (myReader.Read())
            {
                // Get the publisher id, which must occur before getting the logo.
                pub_id = myReader.GetString(1);

              
                // Create a file to hold the output.
                fs = new FileStream(Server.MapPath("logo" + pub_id + ".txt"), FileMode.OpenOrCreate, FileAccess.Write);
                bw = new BinaryWriter(fs);


                // Reset the starting byte for the new BLOB.
                startIndex = 0;


                // Read the bytes into outbyte[] and retain the number of bytes returned.
                retval = myReader.GetBytes(0, startIndex, outbyte, 0, bufferSize);


                // Continue reading and writing while there are bytes beyond the size of the buffer.
                while (retval == bufferSize)
                {
                    bw.Write(outbyte);
                    bw.Flush(); 
                    // Reposition the start index to the end of the last buffer and fill the buffer.
                    startIndex+= bufferSize;
                    retval = myReader.GetBytes(1, startIndex, outbyte, 0, bufferSize);
                } 
                // Write the remaining buffer.
                bw.Write(outbyte);
                bw.Flush(); 
                // Close the output file.
                bw.Close();
                fs.Close();
            }


            // Close the reader and the connection.
            myReader.Close();


原创粉丝点击