http://dotnet.aspx.cc/ShowDetail.aspx?id=EY1XLDYV-PIDF-43LO-1WFL-FMY5ALE1F635

解决方案 »

  1.   

    我想在winform程序中用,我是这么写的
    byte[] b=(byte[])dr["ImageField"]
    MemoryStream ms=new MemoryStream(b);
    Image img=Image.FromStream(ms);   ****
    PictureBox1.Image=img;
    可是在****语句处包错:使用了无效参数。
    错在哪。
      

  2.   

    which database are you using ?Access.I have met same problem as you before.
    I suggest these codes above are right.The real problem are hided in the code that you read from Database with.Please check those codes carefully.
      

  3.   

    SqlConnection pubsConn = new SqlConnection("Data Source=localhost;Integrated Security=SSPI;Initial Catalog=pubs;"); 
    SqlCommand logoCMD = new SqlCommand("SELECT pub_id, logo FROM pub_info", pubsConn); 
    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. 
    // Open the connection and read data into the DataReader. 
    pubsConn.Open(); 
    SqlDataReader myReader = logoCMD.ExecuteReader(CommandBehavior.SequentialAccess); 
    while (myReader.Read()) 

    // Get the publisher id, which must occur before getting the logo. 
    pub_id = myReader.GetString(0); 
    // Create a file to hold the output. 
    fs = new FileStream("logo" + pub_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. 
    retval = myReader.GetBytes(1, 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(); 
    pubsConn.Close(); 
      

  4.   

    Image:可变长度二进制数据介于 0 与 231-1 (2,147,483,647) 字节之间
    C#读取的方法,楼上的朋友已经解决
      

  5.   

    http://community.csdn.net/Expert/topic/3522/3522348.xml?temp=2.880496E-02