我正在尝试将图像存储在SQL Server数据库中,应该使用哪种数据类型?
在下面的内容中code aspx.cs,我试图从请求输入流中读取所有字节并将其存储在数据库中,但是该byte[]数组在表中未正确更新。我想念什么吗?
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是”。您最好去VARBINARY(MAX)存储它们。
VARBINARY
VARBINARY(MAX)
您可以像这样使用它:
cmd.Parameters.Add("@imageBytes", SqlDbType.VarBinaryMax); cmd.Parameters["@imageBytes"].Value = Contents;