那么,首先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
来恢复图像(搜索如何做到这一点)。
将图像添加到数据库不是一个好主意。只需将文件名或路径添加到文件 –
@Ashkan Mobayen Khiabani这是一个错误的概括。有些情况下,将图像存储在数据库中是有意义的。请参阅http://stackoverflow.com/questions/3748/storing-images-in-db-yea-or-nay –
使用'varbinary(MAX)'而不是'image'。 – Dai