6

イメージを SQL Server CE データベースに保存する方法の例を知っている人はいますか?

列のデータ型は何ですか? (私はバイナリを推測しています。)

Linq-To-Datasets を使用します。それを使用して画像をデータベースに入れ、後で再度引き出すことは可能ですか?

アドバイスをありがとう。


これが私がやった方法です:

MemoryStream stream = new MemoryStream();
myBitmapImage.Save(stream, ImageFormat.Png);
myInsertLinqToDataSetRow.IMAGE_COLUMN = stream.ToArray();

再度ロードするために、次のようにしました。

MemoryStream stream = new MemoryStream(myLinqToDataSetRow.IMAGE_COLUMN);
myBitmapImage.SignatureImage = new Bitmap(stream);

Image 列タイプがなくなり、varbinary(MAX) を使用する必要があるという MSDN のページを見つけました。Max は SQL Server CE ではサポートされていないため、varbinary(8000) を実行しました。

後で注意: varbinary(max) は SQL Server CE ではサポートされていません。Varbinary(8000) は、多くの画像に対して十分な大きさではありません。非推奨になる予定ですが、 Image タイプを使用することになりました。ms がモバイル プラットフォームで適切な選択肢を提供したら、乗り換えを検討します。

4

3 に答える 3

5

方法を説明するMSDNの記事は次のとおりです。

http://support.microsoft.com/kb/318639

残念ながら、この例はVBにありますが、その方法を理解できると確信しています。

画像を保存するには、バイナリデータ型で十分だと思います。

于 2010-04-14T14:44:51.830 に答える
5

なぜ画像タイプを使用しないのですか?これは、SQLサーバーceでサポートされているタイプの説明です

画像-最大長が2^30 – 1(1,073,741,823)バイトの可変長バイナリデータ。

于 2010-05-04T14:27:32.590 に答える
1

これはあなたの質問に対する直接的な回答ではありませんが、画像のファイルパス (例: C:\images\image1.png) を生の画像ではなく文字列値としてデータベースに格納することに成功しました。

これの利点の 1 つは、データベースのサイズが小さく保たれることです。

もう 1 つは、イメージの複数のコピーを格納することなく、複数のテーブルがイメージを指すことができることです。

于 2010-04-14T15:07:27.940 に答える