私は現在Visual Studio 2008(VB.Net)とSQL Server 2008を使用しています。データベースに保存された画像はimage
です。私のコードに取り込むときにはSystem.Byte[]
で、System.Drawing.Image
としてキャストできず、DevExpress(v10.2).XtraEditors.ImageEditに保存します。SQLデータベースのイメージをSystem.Drawing.Imageに変換する方法は?
私は
Dim imgStream As MemoryStream = New MemoryStream(image, 0, image.Length)
または
Dim imgStream As MemoryStream = New MemoryStream(image)
に試してみましたしかし、その後も私は私がしようとすると、「パラメータが有効ではありません」を取得としてimage.FromStream(imgStream)
またはbitmap.FromStream(imgStream)
を呼び出すことができません。
EDIT:私たちは、私はプログラムで画像を見ることができる前のプログラムを実行するとSQL 2000年にあった以前のシステムから更新する
。私が新しいものを実行すると、私が移行したイメージは「無効なパラメータ」ですが、データベースに追加した(プログラム上の入力による)イメージはすべて表示できます。古いデータベースと新しいデータベースからイメージをフェッチすると、まったく同じです。データの移行時に考慮すべきSQL 2000とSQL 2008の違いはありますか?
データベースは画像の場所ではありません。より良いアプローチは、データベースに画像パスを格納することです。列型 'image'はイメージとは関係がありません。バイナリデータを保持できます。 – Dani
ダニは100%正しいです。 –
残念ながら、これは私が始める前から設定されています。プログラムは複数のコンピュータに配備されるため、誰でも自分のコンピュータ上に画像を持たず同じ経路を持たないため、画像にする必要があります。 – Kyra