如何显示数据库中的图片?

xcode21 2006-05-18 01:17:35
老话题了,但是一直没有找到解决办法。

ASP.NET 2.0 (Visual Web Developer 2005 Express)

图片是以二进制形式存放在SQL Server数据库中的,存的不是文件名。

我也不想把图片全部都存成文件放在服务器中,只想在有客户请求的时候从数据库中动态读取图片并显示在Web页上。

如果有优秀的免费第三方控件也可以考虑。
...全文
249 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
singlepine 2006-05-18
  • 打赏
  • 举报
回复
http://singlepine.cnblogs.com/articles/390133.html
http://singlepine.cnblogs.com/articles/288027.html
artak 2006-05-18
  • 打赏
  • 举报
回复
写错了
ImageUrl='ReadPic.aspx?id=<%#DataBinder.Eval(Container.DataItem, "ID") %>' />
artak 2006-05-18
  • 打赏
  • 举报
回复
从SQL Server数据库提取图片并显示在DataGrid
建立一个页面来读数据库的图片 如ReadPic.aspx
string picID = Request.QueryString["id"];
SqlConnection myConnection = new SqlConnection("Data Source=.;database=ImageDB;User Id=sa;Password=sa;");
SqlCommand myCommand = new SqlCommand("Select Pic from Person Where ID="
+ picID, myConnection);

try
{
myConnection.Open();
SqlDataReader myDataReader;
myDataReader = myCommand.ExecuteReader(CommandBehavior.CloseConnection);
if(myDataReader.Read())
{
Response.ContentType = myDataReader["PersonImageType"].ToString();
Response.BinaryWrite((byte[])myDataReader["PersonImage"]);
}
myConnection.Close();
}
然后在datagrid的aspx页面如 DataGridPic.aspx放置模板列
<ItemTemplate>
<asp:Image Runat=server ID="Image1"
ImageUrl='<%# DataBinder.Eval(Container.DataItem, "ID") %>' />
</ItemTemplate>
就可以了

fellowcheng 2006-05-18
  • 打赏
  • 举报
回复
关注下
yiqiangwolf 2006-05-18
  • 打赏
  • 举报
回复
string sqlStr = "SELECT * FROM imageinfo where id = '"+_ImgID+" '";
SqlCommand sqlCommand = new SqlCommand(sqlStr,sqlConnection);
sqlConnection.Open();
SqlDataReader sqlDataReader = sqlCommand.ExecuteReader();
if (sqlDataReader.Read())
{
Response.ContentType = "image/jpeg";
System.Drawing.Image _image = System.Drawing.Image.FromStream(new System.IO.MemoryStream((byte[])sqlDataReader["img"]));
float width = _image.Width;
float height = _image.Height;
System.Drawing.Image _newimage = _image.GetThumbnailImage(_width,_height,null,new System.IntPtr());

_newimage.Save(System.Web.HttpContext.Current.Response.OutputStream, System.Drawing.Imaging.ImageFormat.Jpeg );

}
活靶子哥哥 2006-05-18
  • 打赏
  • 举报
回复
http://dotnet.aspx.cc/ShowDetail.aspx?id=2A5DD7C6-A45A-48AB-A2E8-342A29F17506
活靶子哥哥 2006-05-18
  • 打赏
  • 举报
回复
http://dotnet.aspx.cc/ShowDetail.aspx?id=ECD9AE16-8FF0-4A1C-9B9F-5E8B641CB1B1
njuzgj 2006-05-18
  • 打赏
  • 举报
回复
MARK
我是丁学 2006-05-18
  • 打赏
  • 举报
回复
在 Windows 应用程序中,您可以使用“数据源”窗口来绑定要在 PictureBox 控件中出现的数据库中的图片。

注意
可以使用项目可用的所有其他控件替代 PictureBox,这些控件支持数据绑定并可以显示图像。

默认情况下,“数据源”窗口中作为字节数组存储的项(通常,数据库中的图片都是作为字节数组存储的)已将它们的控件类型设置为“无”。因为从单个字节数组到大应用程序的可执行文件都可以包含在字节数组中,所以必须基于实际数据来设置显示字节数组列的控件。对于包含图片的列,从该项的控件列表中将此列的放置类型设置为“PictureBox”。有关更多信息,请参见如何:设置从“数据源”窗口中拖动时要创建的控件。

以下过程假定已用绑定到图像的项填充了“数据源”窗口。有关更多信息,请参见如何:连接到数据库中的数据。

将数据库中的图片绑定到 PictureBox 控件
在“数据源”窗口中,展开所需的表或对象类型以显示它的列或属性。

选择包含图像数据的列或属性,并在它的控件列表中,选择“PictureBox”。

注意
在要在“数据源”窗口中显示的控件下拉列表的设计器中,您的窗体必须处于打开状态。
zhqs1000 2006-05-18
  • 打赏
  • 举报
回复
帮顶,还没有用过2005

62,025

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧