2012-10-09 37 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。 !