如何将图像添加到SQL Server数据库?

时间:2016-03-02 07:40:11

标签: c# sql-server database image

我目前正在使用Microsoft Visual Studio,我正在为学校做一个项目,我必须制作一个应用程序,让您在电影院预订座位,并查看您选择的电影的描述以及离开/阅读评论。

在我的应用程序中,我决定要包含图片(基本上是每部电影的海报);我创建了Movies表,并以idf为主键。我在表定义中添加了poster列,并将其类型设置为image

我的问题是,如何为电影分配某个图像,以便能够访问它并以后能够使用某种查询显示它?

2 个答案:

答案 0 :(得分:1)

首先,poster列的类型应为VARBINARY(MAX)。然后,您可以使用以下SELECT来获取内容:

using (SqlCommand cmd = new SqlCommand("SELECT poster FROM Movies WHERE IDF = @id", connection))
{
    cmd.Parameters.AddWithValue("@idf", <The movie ID>);
    byte[] imageBytes = (byte[])cmd.ExecuteScalar();

    // imageBytes is now either null or the bytes you stored in the column
}

INSERTUPDATE

也是如此
byte[] imageBytes = ...;

using (SqlCommand cmd = new SqlCommand("INSERT INTO Movies (..., Poster) VALUES (..., @poster)", connection))
{
    // Other parameters
    ...

    // imageBytes contains a byte array representing the image
    cmd.Parameters.AddWithValue("@poster", imageBytes);
    cmd.ExecuteNonQuery();
}

我建议您存储原始PNG / JPEG文件字节。首先,它们已被压缩,其次,您可以轻松使用MemoryStream恢复图像(搜索SO以了解如何操作)。

答案 1 :(得分:0)

insert into Movies(poster) 
SELECT BulkColumn 
FROM Openrowset( Bulk 'image..Path..here', Single_Blob) as img.

BulkColumn是语法。