我目前正在使用Microsoft Visual Studio,我正在为学校做一个项目,我必须制作一个应用程序,让您在电影院预订座位,并查看您选择的电影的描述以及离开/阅读评论。
在我的应用程序中,我决定要包含图片(基本上是每部电影的海报);我创建了Movies
表,并以idf
为主键。我在表定义中添加了poster
列,并将其类型设置为image
。
我的问题是,如何为电影分配某个图像,以便能够访问它并以后能够使用某种查询显示它?
答案 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
}
INSERT
或UPDATE
:
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是语法。