private void ShowImage(long ID)
        {
            string str = "SELECT 法人照片 FROM 单位基本情况 WHERE ID=" + ID.ToString();
            SqlConnection conn = new SqlConnection(clsUserInfo.strConnection);
            conn.Open();
            SqlCommand cmd = new SqlCommand(str, conn);
            SqlDataReader reader = cmd.ExecuteReader();            if (reader.Read()) 
            {
                byte[] buf = (byte[])reader[0];                MemoryStream stream = new MemoryStream(buf, 0, buf.Length);
                pictureBox1.Image = Image.FromStream(stream);
                stream.Close();  //stream.Write();
            }
            conn.Close();
        }
执行到这一句pictureBox1.Image = Image.FromStream(stream);
出现参数错误.为什么? 我的开发环境为C# 2005 winform 中文版+ Sql server 2005 中文版 Express
下面是更新图片代码:
private void btnSavePhoto_Click(object sender, EventArgs e)
{
FileStream fs = File.OpenRead(pictureBox1.Tag.ToString());
//pictureBox1.Tag.ToString()是存放照片的路径
byte[] content = new byte[fs.Length];
fs.Read(content, 0, content.Length);
fs.Close();
SqlConnection conn = new SqlConnection(clsUserInfo.strConnection);
conn.Open();
string sql = "Update 单位基本情况 set "
+ " 法人照片 =' @PhotoValue '"
+ " Where ID=" + txtID.Text;SqlCommand comm = new SqlCommand( sql, conn);
comm.Parameters.Add("@PhotoValue", SqlDbType.Image).Value = content;
if (comm.ExecuteNonQuery() == 1)
{
MessageBox.Show("照片成功保存到数据库!", "保存法人照片",
MessageBoxButtons.OK,MessageBoxIcon.Information );
}
conn.Close();
}

解决方案 »

  1.   

    SqlConnection conn=new SqlConnection(@"data source=chenyuming2004\VSdotNET;uid=sa;pwd=cym;database=lhf"); 
    conn.Open(); 
    SqlCommand cmd=new SqlCommand("select pic from fuser where password='1b'",conn); 
    SqlDataReader reader=cmd.ExecuteReader(); 
    reader.Read(); 
    MemoryStream buf=new MemoryStream((byte[])reader[0]); 
    Image image=Image.FromStream(buf,true); 
    pictureBox1.Image=image; 
      

  2.   

    string str = "SELECT 法人照片 FROM 单位基本情况 WHERE ID=" + ID.ToString();
                SqlConnection conn = new SqlConnection(clsUserInfo.strConnection);
                conn.Open();
                SqlCommand cmd = new SqlCommand(str, conn);
                SqlDataReader reader = cmd.ExecuteReader();
                reader.Read();
                byte[] buf = (byte[])reader[0];
                MemoryStream buf2 = new MemoryStream((byte[])reader[0]);
                Image image = Image.FromStream(buf2, true);
                DrawToScale( image); 郁闷啊,还是执行到这一句Image image = Image.FromStream(buf2, true);出现"参数无效"错误.
      

  3.   

    System.Drawing.ImageConverter im=new ImageConverter();
    (Image)im.ConvertFrom(buf);
      

  4.   

    //将数据库中的image显示到pictuebox(pbImage)上:
    byte[] imgbyte = (byte[])dr["photo"];//将图片数据从DataRow中取出来
    pbImage .Image = System.Drawing.Image.FromStream(new System.IO.MemoryStream(imgbyte));
      

  5.   

    MemoryStream buf = new MemoryStream((byte[])row["法人照片"]);
     
                System.Drawing.ImageConverter im = new System.Drawing.ImageConverter();
                (Image)im.ConvertFrom(buf );
    编译时出现
    "只有 assignment、call、increment、decrement 和 new 对象表达式可用作语句"错误.
      

  6.   

    用我的就可以了:
    //pbImage为picturebox,imgbyte为从数据库中取出的图片数据,数据格式为byte[].
    pbImage .Image = System.Drawing.Image.FromStream(new System.IO.MemoryStream(imgbyte));
      

  7.   

    pbImage.Image = System.Drawing.Image.FromStream(new System.IO.MemoryStream(imgbyte));
    也是出现"参数无效"错误啊.
      

  8.   

    那说明你的数据没有取出来。
    pbImage(byte[])是你从数据库中取出来的图片数据。