大神们,帮我看看图片在数据库存储读取问题。
上传的代码:
- C# code
private void upload_Click(object sender, EventArgs e) { //二进制来存储图片 FileStream stream = new FileStream(fName, FileMode.Open, FileAccess.Read); byte[] buffer = new byte[stream.Length]; stream.Read(buffer, 0, (int)stream.Length); stream.Close(); string sql = "insert into 图库(房屋编号,图片)values('" + "1" + "','" + buffer + "')"; SIUD.Insert_and_update(sql); upload.Enabled = false; }
读取代码:
- C# code
void read_picture() { byte[] imageBytes; string sql = "select * from 图库 where 房屋编号='" + "1" + "'"; SqlDataReader dr = SIUD.dr_read_picture(sql); if(dr.Read()){ imageBytes = (byte[])dr["图片"];//获取图片数据 //将内存流格式化为位图 MemoryStream stream = new MemoryStream(imageBytes); Bitmap bmap = new Bitmap(stream); // ms1.Close(); this.pictureBox1.Image = bmap;//将位图显示在界面的PictureBox控件中 } }
MemoryStream stream = new MemoryStream(imageBytes)说是参数无效
[解决办法]
首先确保存进去的时候没有问题。
其次确认imageBytes已经被正确读取到。
显示为图片的代码:
Image img = Image.FromStream(new MemoryStream(imageBytes));
pictureBox1.Image = img;
[解决办法]
http://www.cnblogs.com/sufei/archive/2010/09/24/1834054.html
[解决办法]
楼主好像存储的方法有问题,不能直接通过Insert把图片插入到数据库里,建议看下下面的这个存储到数据库的方法:
http://www.cnblogs.com/wuzi145/archive/2012/05/04/2483529.html