0

我正在使用Asp.net with C#和后端MySql继续Images as byte[] array使用BLOB datatype

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+"');

现在,程序运行完美,没有任何错误,但是当图像存储到 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 )

请告诉我它的格式是否正确?? 或不 ??欢迎提出任何建议。提前致谢

4

1 回答 1

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 )

希望对大家有所帮助,Cears。!!

于 2012-10-20T13:34:52.117 回答