0

私は使用し続けてAsp.net with C#バックエンドを使用していますMySqlImages as byte[] arrayBLOB 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+"');

これで、Programはエラーを発生させることなく完全に実行されますが、画像が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 )

皆様のお役に立てば幸いです。!!

于 2012-10-20T13:34:52.117 に答える