【发布时间】:2017-06-02 02:57:25
【问题描述】:
将图像保存到 SQL Server 2014 数据库时,保存在 Image 类型的列中。问题是,当检索图像并以变量类型byte[] 接收图像时,我无法在预期的控制中看到正确的转换,我已经确定将其发送到数据库时字节数为 139551 字节,但是从数据库中检索它时,字节数为 13 个字节 [13]。显然无法将列类型更改为varbinary (MAX),因为它只支持8000字节...
数据库恢复:
DataTable Tabla = ConsultasMasivasN.ConsultarSoporteIndicadorN(CodigoGI, UsuarioS);
ViewState["TblSoporte"] = Tabla;
gridListado.DataSource = Tabla;
gridListado.DataBind();
Session["Consulta"] = Tabla;
处理程序文件:
if (context.Session["Consulta"] != null)
{
DataTable tbRegistro = (DataTable)context.Session["Consulta"];
DataRow drRegistro = tbRegistro.Select(string.Format("Codigo={0}", context.Request.QueryString["Codigo"]))[0];
byte[] imagen = (byte[])drRegistro["Soporte"];
context.Response.ContentType = "image/jpg";
context.Response.OutputStream.Write(imagen, 0, imagen.Length);
}
感谢您的帮助!
【问题讨论】:
-
image数据类型将在 SQL Server 的未来版本中删除。避免在新的开发工作中使用这种数据类型,并计划修改当前使用它们的应用程序。请改用varbinary(max)(它支持 20 亿字节 (2 GB) 的大小 - NOT 只有 8000 字节!See details here
标签: c# html asp.net sql-server image