MemoryStream buf = new MemoryStream((byte[])reader[0]);
                    Image image = Image.FromStream(buf,true);
                    this.pictureBox1.Image = image;

解决方案 »

  1.   

    完整点的,你参考下!
    SqlConnection conn = new SqlConnection(@"data source=.;uid=sa;pwd=;database=master");
                conn.Open();
                SqlCommand cmd = new SqlCommand("select image1 from image", conn);
                SqlDataReader reader = cmd.ExecuteReader();
                while (reader.Read())
                {
                        MemoryStream buf = new MemoryStream((byte[])reader[0]);
                        Image image = Image.FromStream(buf,true);
                        this.pictureBox1.Image = image;
                 }
                
      

  2.   

    pictureBox1.Image = (Bitmap)Image.FromStream(memorystream); 
    改成
    pictureBox1.Image = (Image)Image.FromStream(memorystream); 
      

  3.   

    不好意思,我研究了一下,不过发现你的问题不属于网站开发,呵呵!上GOOGLE上再找找吧,可能是你使用的读取流类不正确。
      

  4.   

    上幾天又點忙,我把你的源代碼一點不改的copy到程序里,還是不行,哎~~~~~~~~~~
    順便說一下,我做的事WIN結構
      

  5.   

    奇怪,我用楼主的代码试可以正常运行呀,只是改了一下连接类型,因为我的数据库是Oracle的
      

  6.   

    是Image.FromStream报出的错吧
    通常是因为Stream中的内容并不是一个已知的图形格式
      

  7.   

    写       
         FileStream stream = new FileStream(Server.MapPath("aa/Logo.jpg"), FileMode.Open, FileAccess.Read);
                byte[] blob = new byte[stream.Length];
                stream.Read(blob, 0, (int)stream.Length);
                stream.Close();读
                FileStream fs = new FileStream("c:\\b.jpeg", FileMode.OpenOrCreate, FileAccess.Write);
                BinaryWriter bw = new BinaryWriter(fs);
                bw.Write((byte[])blob);
                bw.Close();
                hahaimage.ImageUrl = "c:\\b.jpeg";你参考一下
      

  8.   

    流的形式读取图片? 只能是在系统中有的图片,并且,右键属性,设为嵌入的资源才行的,呵呵!
        还要是流形式的图片?  ico格式行
      

  9.   

    确认图片数据没有问题,另外参考下面代码,
    ======
    转为byte类型后存入Image字段。
    byte[] imagebytes=null;
    FileStream fs=new FileStream(Image_path,FileMode.Open);
    BinaryReader br=new BinaryReader(fs);
    imagebytes=br.ReadBytes(br.Length);
    SqlParameter parInput22=cmd.Parameters.Add("@员工图片",SqlDbType.Image);
    parInput22.Direction=ParameterDirection.Input;
    cmd.Parameters["@员工图片"].Value=imagebytes;
    cmd.ExecuteNonQuery();
      

  10.   

    数据库中操作图片
    How To Read and Write BLOB Data by Using ADO.NET with Visual C# .NET
    http://support.microsoft.com/default.aspx?scid=kb;EN-US;309158
    DataGrid显示图片(物理路径式和Stream流式)和添加图片到数据库
    http://singlepine.cnblogs.com/articles/288027.html
      

  11.   

    Net下图片的常见存储与读取凡是有以下几种:
    存储图片:以二进制的形式存储图片时,要把数据库中的字段设置为Image数据类型(SQL Server),存储的数据是Byte[].
    1.参数是图片路径:返回Byte[]类型:  public byte[] GetPictureData(string imagepath)
            {
                /**/////根据图片文件的路径使用文件流打开,并保存为byte[]   
                FileStream fs = new FileStream(imagepath, FileMode.Open);//可以是其他重载方法 
                byte[] byData = new byte[fs.Length];
                fs.Read(byData, 0, byData.Length);
                fs.Close();
                return byData;
            }2.参数类型是Image对象,返回Byte[]类型:  public byte[] PhotoImageInsert(System.Drawing.Image imgPhoto)
            {
                //将Image转换成流数据,并保存为byte[]   
                MemoryStream mstream = new MemoryStream();
                imgPhoto.Save(mstream, System.Drawing.Imaging.ImageFormat.Bmp);
                byte[] byData = new Byte[mstream.Length];
                mstream.Position = 0;
                mstream.Read(byData, 0, byData.Length);
                mstream.Close();
                return byData;
            }好了,这样通过上面的方法就可以把图片转换成Byte[]对象,然后就把这个对象保存到数据库中去就实现了把图片的二进制格式保存到数据库中去了。下面我就谈谈如何把数据库中的图片读取出来,实际上这是一个相反的过程。
    读取图片:把相应的字段转换成Byte[]即:Byte[] bt=(Byte[])XXXX
    1.参数是Byte[]类型,返回值是Image对象:  public System.Drawing.Image ReturnPhoto(byte[] streamByte)
            {
                System.IO.MemoryStream ms = new System.IO.MemoryStream(streamByte);
                System.Drawing.Image img = System.Drawing.Image.FromStream(ms);
                return img;
            }2.参数是Byte[] 类型,没有返回值,这是针对asp.net中把图片从输出到网页上(Response.BinaryWrite)
     public void WritePhoto(byte[] streamByte)
            {
                // Response.ContentType 的默认值为默认值为“text/html”
                Response.ContentType = "image/GIF";
                //图片输出的类型有: image/GIF  image/JPEG
                Response.BinaryWrite(streamByte);
            }补充:
    针对Response.ContentType的值,除了针对图片的类型外,还有其他的类型:             Response.ContentType = "application/msword";
                Response.ContentType = "application/x-shockwave-flash";
                Response.ContentType = "application/vnd.ms-excel";另外可以针对不同的格式,用不同的输出类型以适合不同的类型:   switch (dataread("document_type"))
                {
                    case "doc":
                        Response.ContentType = "application/msword";
                    case "swf":
                        Response.ContentType = "application/x-shockwave-flash";
                    case "xls":
                        Response.ContentType = "application/vnd.ms-excel";
                    case "gif":
                        Response.ContentType = "image/gif";
                    case "Jpg":
                        Response.ContentType = "image/jpeg";
                }