C#怎样读取数据库中的图片?(看清说明再回答!)

注意:我的数据库是SQL2005图片储存格式image,B/S模式,用的是image控件显示图片,所以别跟我讲picturebox,B/S是没有picturebox的.我... 注意:我的数据库是SQL2005图片储存格式image,B/S模式,用的是image控件显示图片,所以别跟我讲picturebox,B/S是没有picturebox的.
我现在已经将图片成功保存进数据库了(二进制数据),我想从数据库读取出来的时候,把图片先保存到本地,在本地建一个临时目录,然后再从这个临时目录把图片读取出来显示在image控件上面.求读取图片,保存到本地,显示的代码,保存的代码不用了.自己测试能用的就回答,网上的我基本都看过,不能用.请贴出完整的代码..
展开
 我来答
百度网友b173602
2009-08-10 · TA获得超过1681个赞
知道小有建树答主
回答量:1466
采纳率:0%
帮助的人:840万
展开全部
这个我做过,流程就是首先新建一个页面用于输出图像,将数据库中的二进制数据流读取到字节数组中,再定义基于字节数组的内存流,再定义图片对象,从内存流中生成图片,输出到一个新建页面上,在需要的页面上,定义image控件,imageurl就指向这个页面,当然了,得传一个参数,就是你要查询的条件啊,这样这个页面才会动态的输出不同的图片。
以下是读取图片的代码:
/// <summary>
/// 显示图片
/// </summary>
/// <param name="sql"></param>
protected void LoadImage(string sql)
{

DataOperate dt = new DataOperate();//操作类的实例
SqlConnection Conn = dt.GetConn();
Conn.Open();
SqlCommand cmd = new SqlCommand(sql, Conn);
byte[] fileData = (byte[])cmd.ExecuteScalar();
Conn.Close();

System.IO.MemoryStream ms = new System.IO.MemoryStream(fileData);
System.Drawing.Image img = System.Drawing.Image.FromStream(ms);
img.Save(Response.OutputStream, System.Drawing.Imaging.ImageFormat.Jpeg);
}
产业加互联网档案室
2009-08-11
知道答主
回答量:2
采纳率:0%
帮助的人:0
展开全部
个人感觉,从数据库里面读写image格式的图片会很耗时间,很耗性能.而且编码的时候也容易出错.

LZ何不考虑一下,换个方法来读图片呢?如果数据库里面有超过100万张的图片要批量读出来,这样的方式会很耗性能的.

我的建议是,直接把服务器上的图片文件夹的路径存储的数据库里,这样字节也小,性能开销也小.

都是用picturebox绑定的..这样就能最大限度的利用资源来显示图片勒.picturebox图片的绑定不就要是要一个source么.
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
skyrickie
2009-08-10 · TA获得超过201个赞
知道答主
回答量:303
采纳率:0%
帮助的人:129万
展开全部
http://skyrickie.blog.163.com/blog/static/2353329200957112510123/edit/
给你一个我在Winform上做的例子,如果保存到本地的话下面一段代码替换掉
byte[] images = (byte[])sqldr["myimage"];
Stream stream = new MemoryStream(images);
System.Drawing.Image.FromStream(stream).Save(@"d:\test.img");
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友0f3f080f4
2009-08-10 · TA获得超过777个赞
知道小有建树答主
回答量:1055
采纳率:0%
帮助的人:814万
展开全部
你从数据库里面读出来的图片是byte[]数组把?可以参考一下我的。我没验证对不对
byte[] buffer;//数据库读出来的byte数组
System.IO.MemoryStream ms = new System.IO.MemoryStream(buffer);
System.Drawing.Image image = System.Drawing.Image.FromStream(ms);
image.Save("d:\\1.jpg");
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
孙中吕
2009-08-10 · 专注C/S架构开发框架技术研究
孙中吕
采纳数:435 获赞数:788

向TA提问 私信TA
展开全部
喜欢 [回答者: zhenshui007 - 经理 五级] 的答案
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式