2012-10-09 39 views
0

我使用Asp.net with C#和後端MySql爲byte []到MySQL保持Images as byte[] array使用BLOB datatype存儲圖像使用asp.net和c#

TABLE : ImageLog

ImgID     int (auto increment) 
ImageLogo    blob 

我使用以下function to convert image to array...

private byte[] ConvertImageToByteArray(FileUpload fuImgToByte) 
    { 
     byte[] ImageByteArray; 
     try 
     { 
      MemoryStream ms = new MemoryStream(fuImgToByte.FileBytes); 
      ImageByteArray = ms.ToArray(); 
      return ImageByteArray; 
     } 
     catch (Exception ex) 
     { 
      return null; 
     } 
    } 

這裏是調用方法創建byte[] bt插入MySql

Byte[] bt = null; 
bt = ConvertImageToByteArray(FileUploader1); --> Passing File Uploader ControlID 

將像...

INSERT INTO IMAGELOG (ImageLogo) VALUES ('"+bt+"');

現在,程序運行perfectlly不會導致任何錯誤,但當圖像存儲到MySql,it stored like System.Byte[] not into byte[] array。結果像這樣...

ImgID  ImageLogo 
________________________________ 
    1  System.Byte[] 13K (Length) < ----- > not storing byte[] in proper format 
    2  System.Byte[] 13K (Length) 

請告訴我它的格式是否正確? ?或不 ??歡迎每一個建議。 在此先感謝

回答

1

問題解決了地塊的困境後...只需添加參數通過?強似字節數組bt內插入查詢......像這樣的東西直接:

INSERT INTO IMAGELOG (ImageLogo) VALUES (?p1)和值傳遞這樣的事情

cmd.Parameters.Add(「?p1」,bt); < - 在這裏添加參數p1值

注意:如果您使用MySql作爲數據庫端,那麼我建議使用?而不是@符號。

OUTPUT:

ImgID  ImageLogo 
________________________________ 
    1  Binary Image 73K (Length) < ----- > You can see the difference... 
    2  Binary Image 69K (Length) 

希望它可以幫助你的一切,CHEARS。 !