c#从数据库中读取图片的问题

我想用c#从sqlserver2005中读取图片在c#编写的程序中显示出来,具体如下:sql中有数据库db.mdf,里面有表images,其下两个字段:imgId(nva... 我想用c#从sqlserver2005中读取图片在c#编写的程序中显示出来,具体如下:sql中有数据库db.mdf,里面有表images,其下两个字段:imgId(nvarchar(150),存储图片名称)、img(image,存放图片)。我想用c#编写代码(注意不是asp.net)读取imgId为“张三001”的图片,在picturebox1中显示,代码该怎样写?主要是怎样把字段img中的内容显示在picturebox中,分不多了,还望见谅
请问2楼,我用byte[] bs=(byte[])thisreader["image"].tostring();给bs赋值,当执行到MemoryStream memorystream=new MemoryStream (bs);时提示参数无效。我用label1=thisreader[“image”].tostring()想获取其内容看一下,执行后label1显示的是“System.Byte[]”,请问问题出在哪里?

抱歉还得麻烦一下2楼,上个问题已经解决了,而且执行时通过,但走到Bitmap image=new Bitmap (memorystream);这句又出现参数无效的问题,请问这次怎么回事后?
展开
 我来答
Bruce_HackZJ
2011-01-27
知道答主
回答量:1
采纳率:0%
帮助的人:0
展开全部
1、将从数据库中读出的数据,如dt,rows[0]["Image"],转换成字节数组
2、用第一步中的字节数组新建内存流memorystream,具体参考其构造函数
3、用第二步中的内存流来构造一个Bitmap对象
4、用pictureBox绑定到bitmap对象
bjddd192
2011-01-25 · TA获得超过416个赞
知道小有建树答主
回答量:496
采纳率:0%
帮助的人:435万
展开全部
先读出流
然后流转成图片文件
最后设置PictureBox的Image属性
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友50c6e20
推荐于2016-06-16
知道答主
回答量:34
采纳率:0%
帮助的人:20.4万
展开全部
byte[] bs=(byte[])dr[8];//dr[8]是数据库中第八列的数据image类型
MemoryStream memorystream=new MemoryStream (bs);
memorystream.Write(bs, 0, bs.Length);
Bitmap image=new Bitmap (memorystream);
pictureBox1.Image =image;
memorystream.Close();

byte[] bs=(byte[])thisreader["image"].tostring();
这里不要.tostring
byte[] bs=(byte[])thisreader["image"];
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
xyhuju
2011-01-25 · TA获得超过127个赞
知道答主
回答量:124
采纳率:0%
帮助的人:152万
展开全部
按你意思简单写了一下:

//引入必要的命名空间
using System.Data;
using System.Data.SqlClient;
using System.IO;

//写入一张图片到数据库
void BtnWriteClick(object sender, EventArgs e)
{
string path=Application.StartupPath+@"\张三001.jpg";
FileStream fs = new FileStream(path, FileMode.Open, FileAccess.Read);
byte[] bytes = new Byte[fs.Length];
fs.Read(bytes, 0, (int)fs.Length);

using (SqlConnection cn=new SqlConnection("server=local);uid=sa;pwd=sa;database=db"))
{
cn.Open();
SqlCommand cmd=new SqlCommand("Insert into images(imgid,img) values (@imgid,@img)",cn);
cmd.Parameters.Add("imgid",SqlDbType.VarChar).Value="张三001";
cmd.Parameters.Add("img", SqlDbType.Image, (int)fs.Length).Value=bytes;
cmd.ExecuteNonQuery();
}

}

//从数据库中查找一张图片显示到pictuerbox中
void BtnLoadClick(object sender, EventArgs e)
{
using(SqlConnection cn = new SqlConnection("server=(local);uid=sa;pwd=sa;database=db"))
{
cn.Open();
SqlCommand cmd=new SqlCommand("select imgid,img from images where imgid='张三001'",cn);
SqlDataReader dr=cmd.ExecuteReader();
if(dr.Read())
{
byte[] bytes = (byte[])dr["img"];
MemoryStream ms = new MemoryStream(bytes);
Bitmap bmp = new Bitmap(ms);
pictureBox1.Image = bmp;
}
}
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式