怎样从Access数据库中读取图片?
//从数据库中获取 二进制大对象 (BLOB) 值
public void GetBLOB()
{
System.Data.OleDb.OleDbConnection conn = new
System.Data.OleDb.OleDbConnection();
conn.ConnectionString = @ "Provider=Microsoft.Jet.OLEDB.4.0; " +
@ "Data source= C:\Program Files\Microsoft Office\OFFICE11
\SAMPLES\ " +@ "Northwind.mdb ";
OleDbCommand cmd = new OleDbCommand( "SELECT 类别ID,图片 FROM 类别 ", conn);
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 category_id = " "; // The category id to use in the file name.
conn.Open();
OleDbDataReader myReader = cmd.ExecuteReaderCommandBehavior.SequentialAccess);
while (myReader.Read())
{
// Get the category id, which must occur before getting the logo.
category_id = myReader.GetInt32(0).ToString();
Console.WriteLine( "类别ID = {0} ", category_id);
// Create a file to hold the output.
fs = new FileStream( "category " + category_id + ".bmp ", 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.