C#从数据库读取图片 30
byte[]imagebytes=null;SqlConnectioncon=newSqlConnection("server=(local);uid=sa;pwd=;d...
byte[] imagebytes = null;
SqlConnection con = new
SqlConnection("server=(local);uid=sa;pwd=;database=db_05");
con.Open();
SqlCommand com = new SqlCommand("select image from //图片已经转为二进制存储在数据库
student where number=‘“+label1.text+”’", con); //image字段中
SqlDataReader dr = com.ExecuteReader();
while (dr.Read())
{
imagebytes = (byte[])dr.GetValue(1); //运行到这一步的时候提示我“索引超出数组范围”
}
dr.Close();
com.Clone();
con.Close();
MemoryStream ms = new MemoryStream(imagebytes);
Bitmap bmpt = new Bitmap(ms);
pictureBox1.Image = bmpt;
问题如上,求高手指点,解决另加分!!!!
另外我写入图片时候是这样的
System.IO.MemoryStream Ms = new MemoryStream();
this.pictureBox1.Image.Save(Ms, System.Drawing.Imaging.ImageFormat.Jpeg);
byte[] img = new byte[Ms.Length];
Ms.Position = 0;
Ms.Read(img 0, Convert.ToInt32(Ms.Length));
Ms.Close(); 以上一段是将图片转为二进制
a.Open();
是不是写入图片有问题 展开
SqlConnection con = new
SqlConnection("server=(local);uid=sa;pwd=;database=db_05");
con.Open();
SqlCommand com = new SqlCommand("select image from //图片已经转为二进制存储在数据库
student where number=‘“+label1.text+”’", con); //image字段中
SqlDataReader dr = com.ExecuteReader();
while (dr.Read())
{
imagebytes = (byte[])dr.GetValue(1); //运行到这一步的时候提示我“索引超出数组范围”
}
dr.Close();
com.Clone();
con.Close();
MemoryStream ms = new MemoryStream(imagebytes);
Bitmap bmpt = new Bitmap(ms);
pictureBox1.Image = bmpt;
问题如上,求高手指点,解决另加分!!!!
另外我写入图片时候是这样的
System.IO.MemoryStream Ms = new MemoryStream();
this.pictureBox1.Image.Save(Ms, System.Drawing.Imaging.ImageFormat.Jpeg);
byte[] img = new byte[Ms.Length];
Ms.Position = 0;
Ms.Read(img 0, Convert.ToInt32(Ms.Length));
Ms.Close(); 以上一段是将图片转为二进制
a.Open();
是不是写入图片有问题 展开
3个回答
展开全部
数据库中应存放的是图片的地址,图片存放于服务器端的文件夹中。
如果你考虑这个方案的话,可以贴一段代码给你。
如果你考虑这个方案的话,可以贴一段代码给你。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
改成dr.GetValue(0)
追问
改了之后出现 Bitmap bmpt = new Bitmap(ms);这一句 参数无效
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询