2012年10月25日木曜日

SQL Serverデータベースにイメージを保存する方法は?


Webアプリケーションのほとんどは、それに使用されている画像の多くを持っています。これらの画像は、通常、Webサーバーのフォルダに格納され、それらはウェブサイトのルートフォルダに対してファイルへの相対パスを与えることによって、アクセスされます。 NETは、現在分散アプリケーション用のプラットフォームとして、ASP.Netは、SQL Server 2000およびそれ以降のバージョンのようなデータベースに格納されるために小さい画像を格納するために使用することができます。この目的のためにSQL Serverデータベースは、データベースにイメージを格納するために使用される "イメージ"と呼ばれるデータ型を提供します。

データベースに格納されているこれらのイメージにアクセスするために我々は、ADO.Netクラスを使用することになります。 SQL Serverデータベースに画像を挿入および取得する方法を見つけるためには、データベースに保存する画像ファイルを選択するために使用されるHtmlInputFileコントロールを持つことができます。aspxページを作成することができます。また、イメージの名前またはいくつかのコメントや保存した画像の画像IDを追加できるのTextBoxコントロールを作成することができます。データベースにイメージをアップロードするボタンコントロールを使用します。 System.Data.SqlClientのような名前空間には、は、System.Drawing、System.Dataの、System.IO、およびSystem.Drawing.Imagingはこのタスクで使用されています。

ボタンのOnClickプロパティには、データベースにイメージをアップロードするには、次のコードを書くことができます。

/ /アップロードされたイメージファイルのバイト[]を作成する

int型imagelen = Upload.PostedFile.ContentLength。

バイト[] picbyte =新しいバイト[imagelen];

Upload.PostedFile.InputStream.Read(picbyte、0、imagelen);

/ /データベースに画像と画像のIDを挿入します。

SqlConnectionオブジェクトコン=新しいSqlConnection(@ "ここ​​で接続文字列を与える...");

試す

{

conn.Open();

SqlCommandオブジェクトCMD =新しいSqlCommand(+ "ImageTableに挿入" "(ImageFieldが、ImageID)の値(@写真@ imageid)"に、conn); cmd.Parameters.Add( "@ PIC"、picbyte);

cmd.Parameters.Add( "@ imageid" lblImageID.Text);

cmd.ExecuteNonQuery();

}

最後に

{

conn.Close();

}

また、関数内で上記のコードを記述し、アップロードボタンのOnClickイベントでその関数を呼び出すことができます。上記のコードは、データベースに画像を挿入する過程​​で次の手順を実行します。

1。アップロードするイメージのコンテンツ長を取得

2。イメージを格納するバイト[]を作成します。

3。ポストされたファイルの入力ストリームを読み取る

4。接続オブジェクトを作成します。

5。接続オブジェクトを開きます。

6。コマンドオブジェクトを作成します。

7。コマンドオブジェクトにパラメータを追加します。

8。コマンドオブジェクトのExecuteNonQueryメソッドを使用してSQLコマンドを実行します。

9。接続オブジェクトを閉じる

SQLデータベースから画像を取得するには、次の手順を実行することができます。

1。 MemoryStreamオブジェクトを作成します。コー​​ドは、MemoryStream mstream =新しいMemoryStreamを()のようなものになることができます。

2。 Connectionオブジェクトを作成します。

3。データベースへの接続を開きます。

4。イメージを取得するためのコマンドを実行するコマンドオブジェクトを作成します。

5。イメージを取得するには、コマンドオブジェクトのExecuteScalarメソッドを使用し

6。バイトのその[]には、ExecuteScalarメソッドの出力をキャスト
バイト[]画像=(byte [])をcommand.ExecuteScalar();

7。ストリームmstream.Write(イメージ、0、image.Length)を書く;

8。 =新しいBitmap(ストリーム)ストリームのビットマップのビットマップを保持するビットマップオブジェクトを作成します。

9。いる "image / gif"ます。Response.ContentType = "image / gifの"コンテンツタイプを設定します。

10。 OutputStreamにイメージを出力するビットマップオブジェクトのSaveメソッドを使用します。
bitmap.Save(Response.OutputStream、ImageFormat.Gif);

11。接続を閉じる

12。ストリームmstream.Close()を閉じます。

データベースからWebページにイメージを取得して表示することができ、上記の手順を使用します。

あなたは、これらのアルゴリズムを使用してデータベースのテーブル内の特定のレコードに対応する小さな画像を格納するためのSQLServer 2000データベースで使用可能な "イメージ"データ型を活用することができます。保存するためのこの方法は、画像がWebフォルダに格納されている場合、Webフォルダのパスを追跡するの面倒な作業を回避することができます。...

0 件のコメント:

コメントを投稿