我可以使用varbinary类型来存储SQL Server数据库中的图像
本文关键字:数据库 Server 图像 SQL 存储 可以使 varbinary 类型 我可以 | 更新日期: 2023-09-27 18:05:54
我想在我的SQL Server数据库中存储一个图像,我应该使用什么数据类型?
在下面的code aspx.cs
中,我试图从请求输入流中读取所有字节并将其存储在数据库中,但byte[]
数组在表中没有正确更新。我错过什么了吗?
protected void Page_Load(object sender, EventArgs e)
{
Request.InputStream.Position = 0;
byte[] Contents = new byte[Request.InputStream.Length];
Request.InputStream.Read(Contents, 0, (int)Request.InputStream.Length);
con.Open();
try
{
string query = "update tblImageUpload set " + IMAGE_ID + " = @imageBytes where Image_ID='" + CID + "'";
int i = 0;
using (cmd = new SqlCommand(query, con))
{
cmd.Parameters.Add("@imageBytes", SqlDbType.VarBinary, Contents.Length).Value = Contents;
i = cmd.ExecuteNonQuery();
}
Response.Write("Upload Query = " + query);
Response.Write("Upload Code = " + i);
} catch (Exception ex) {
Response.Write("Upload Code=" + ex);
}
您可以使用VARBINARY
yes。您最好使用VARBINARY(MAX)
来存储它们。
你可以这样使用:
cmd.Parameters.Add("@imageBytes", SqlDbType.VarBinaryMax);
cmd.Parameters["@imageBytes"].Value = Contents;