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);这句又出现参数无效的问题,请问这次怎么回事后? 展开
请问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);这句又出现参数无效的问题,请问这次怎么回事后? 展开
4个回答
展开全部
先读出流
然后流转成图片文件
最后设置PictureBox的Image属性
然后流转成图片文件
最后设置PictureBox的Image属性
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
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"];
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"];
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
按你意思简单写了一下:
//引入必要的命名空间
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;
}
}
}
//引入必要的命名空间
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;
}
}
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询