日期:2014-05-18  浏览次数:20806 次

大神们,帮我看看图片在数据库存储读取问题。
上传的代码:
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