在C#中从MySQL中检索LONGBLOB

我想从我的MySQL数据库中检索LONGBLOB,但我不知道如何。 我搜索了interwebz并没有发现任何真正有用(可理解)的内容。 当我检索LONGBLOB时,我想将其保存为图像。

这是我已经尝试过的:

int bufferSize = 100; byte[] bin = new byte[bufferSize]; long retval = 0; long startIndex = 0; MemoryStream ms = null; Image image = null; MySqlCommand command = new MySqlCommand("select * from image where uid = @uid", Connection.Connect()); command.Parameters.AddWithValue("@uid", "2"); MySqlDataReader reader = command.ExecuteReader(); if (reader.Read()) { retval = reader.GetBytes(reader.GetOrdinal("logo"), startIndex, bin, 0, bufferSize); } ms = new MemoryStream(bin); image = Image.FromStream(ms); 

提前致谢。

我实际上这是我正在做的一个项目的一部分……

 public Bitmap loadImage(int imgID)
         {

             MySqlDataReader myData;
             MySqlCommand cmd = new MySqlCommand();

            字符串SQL;
             byte [] rawData;
             MemoryStream ms;
             UInt32 FileSize;
            位图outImage;

             SQL =“SELECT ImageName,ImageSize,Image FROM Images WHERE ImageID =”;
             SQL + = imgID.ToString();

            尝试
             {
                 cmd.Connection = connection;
                 cmd.CommandText = SQL;

                 myData = cmd.ExecuteReader();

                 if(!myData.HasRows)
                    抛出新的exception(“没有要保存的blob”);

                 myData.Read();

                 FileSize = myData.GetUInt32(myData.GetOrdinal(“ImageSize”));
                 rawData = new byte [FileSize];

                 myData.GetBytes(myData.GetOrdinal(“Image”),0,rawData,0,(Int32)FileSize);


                 ms = new MemoryStream(rawData);
                 outImage = new Bitmap(ms);
                 ms.Close();
                 ms.Dispose();

                 myData.Close();
                 myData.Dispose();

                 cmd.Dispose();

                返回图像;


             }
             catch(MySqlException ex)
             {
                 MessageBox.Show(ex.Message);
                 return null;
             }

         }

希望这可以帮助。 也请原谅任何不良编码做法,这是前一段时间写的。

谢谢汤姆

我不确定,但我认为你可以试试这个: http : //www.techrepublic.com/article/utilize-adonet-and-c-to-work-with-blob-data/5766889

斯特凡