2009-08-28 3 views
1

私はこれを持っている:SQL Server 2008にイメージを保存しますか?

Create Proc CrearNuevoImagen 
    @imagen image  
AS 

INSERT INTO 
    Imagenes(imagen) 

VALUES(
    @imagen 
    ) 

私はその@imagenがタイプ 'イメージ' である参照してください。

私のフロントエンド(私のasp.netウェブサイトコード)に.jpg画像が保存されていますが、「image」タイプの列に合わせて.jpg画像をどのように変換できますか?それとも、SQL Serverが自動的にこれを行うのですか?

+1

sigh。あなたは人々がタグに基づいて質問をフィルタリングすることを認識していますか?良いタグを使うことで、あなたの質問はどのように答えられるかを知っている人のために強調表示されるか、rssフィードに表示されますか? –

+2

"イメージ"を使用しないでください。SQL Server 2005以降では、VARBINARY(MAX)を代わりに使用してください。 IMAGEはすぐにSQL Serverから削除されます。 –

+0

@marc_s:良いリダンダンスもあります。 ;) – NotMe

答えて

4

イメージオブジェクトをMemoryStreamに保存します。次に、バイト配列をメモリストリームから取り出し、SQL Serverに渡して "image"または "varbinary"列に保存します。

+0

私は "Image"を "バイト配列"に変換するだけで、SQLはそれを 'image'型の列に受け入れますか? –

+1

はい、GetBytes()メソッドを使用してSqlDataReaderでデータを読み込みます。 – David

2

イメージ列型は単なるバイナリコンテナです。 SQL Serverは、そこに格納したデータをまったく解釈または変更しません。

はIMAGE型はバイト配列を格納できるタイプの名前だけですhttp://www.informit.com/articles/article.aspx?p=377078

1

を参照してください。現在は推奨されていませんので、代わりにVARBINARY(MAX)型を使用する必要があります。 JPGファイルをバックエンドデータベースに保存することは、比較的大きなファイルをメモリにコピーしないようにする必要があるため、パフォーマンスを気にする方が実際は少し複雑です。 SQL ServerのBLOBフィールドに格納されたイメージファイルの効率的なストリーミングの例については、Download and Upload images from SQL Server via ASP.Net MVCを参照してください。

+0

IMAGEタイプの+1は廃止されました。「画像データタイプは将来のバージョンのMicrosoft SQL Serverでは削除されます」http://msdn.microsoft.com/en-us/library/ms187993.aspx – Habib

関連する問題