1

私のシステムには、追加されたアイテムの画像を保存する機能があります。私が行うことは、画像のファイル名を SQL サーバーに保存し、画像を asp.net のフォルダーの 1 つに保存することです。

ここに、SQLサーバーに画像のファイル名を保存するための私のコードがあります:

INSERT INTO schemaImage.Image(image_name) VALUES ('image1.FileName')

画像をフォルダーに保存するための私のコードは次のとおりです。

image1.SaveAs(Server.MapPath("Images/" + image1.FileName))

画像をデータベースに保存することはできますか?

ここで画像を保存するには何がより適切ですか?

4

3 に答える 3

1
  1. はい、SQL Server でイメージをバイナリ タイプとして保存することは可能です。

    詳細: http://www.asp.net-crawler.com/articles/ADO.Net/Storing-binary-blob-data-images-files-SQL-server-ADONet.aspx

  2. 画像を保存する適切な方法は、アプリケーションの要件によって異なります。たとえば、画像を頻繁に変更する必要があり、サイズが大きい場合は、断片化をより適切に処理するように構築されているファイル システムに保存する方が適切です。 さらに詳しく..

于 2013-02-28T00:19:56.060 に答える
0

イメージをデータベースに格納するには、イメージをバイトに変換する必要があります。IO.File.ReadAllBytes()ローカル ファイルまたはNet.WebClient.DownloadData()Web ファイルに使用できます。IMAGESQL Server ではデータ型がなくなるため、これを使用しVARBINARY(MAX)て格納します。

コード:

Dim url As String = "http://example.com/image.png",
    file As String = "c:\image.png"

Using connection As New Data.SqlClient.SqlConnection("your connection string"),
    saveImage As New Data.SqlClient.SqlCommand("dbo.saveImage", connection)

    connection.Open()
    saveImage.CommandType = Data.CommandType.StoredProcedure

    'use only one of these
    saveImage.Parameters.AddWithValue("@imageData", New Net.WebClient().DownloadData(url)) 'get file from url
    'saveImage.Parameters.AddWithValue("@imageData", IO.File.ReadAllBytes(file)) 'get file locally

    saveImage.ExecuteNonQuery()

End Using

手順:

CREATE PROCEDURE [dbo].[saveImage] ( @imageData AS VARBINARY(MAX) )
AS
INSERT INTO dbo.myImage ( imageData ) VALUES ( @imageData )

テーブル:

CREATE TABLE [dbo].[myImage](
    [imageData] [varbinary](max) NOT NULL
) 
于 2013-02-28T00:16:11.820 に答える
0

もちろん、SQL Server に画像データを格納することもできます。画像データを格納するための varbinary や image などのデータ型があります。これらのタイプの使用法に関する詳細情報は、このリンクにあります。ただし、その前に SQL Server にイメージを保存する必要がありますか? データベースに画像を保存するかどうかを決定します。

于 2013-02-28T00:16:29.073 に答える