using (SqlDataReader drm = sqlComm.ExecuteReader())
                    {
                        drm.Read();//以下把数据库中读出的Image流在图片框中显示出来.                        MemoryStream ms = new MemoryStream((byte[])drm["Logo"]);
                        Image img = Image.FromStream(ms);                        this.pictureBox1.Image = img;
                    }
一直报Image img = Image.FromStream(ms);参数无效,这要怎么改???

解决方案 »

  1.   

    http://blog.csdn.net/zystory/article/details/4399338
      

  2.   

    断点看一下drm["Logo"]是啥,是不是DBNull.Value
      

  3.   

    先监视(byte[])drm["Logo"] 这个字节流是否有问题。
      

  4.   

    byte[])drm["Logo"]部分。用
    SqlDataReader.GetSqlBytes 或者GetBytes 方法去取。
    很有可能你直接转换出来的数据不正确。
      

  5.   

    SqlBytes里有Stream,往里面写就可以更新了。
      

  6.   

     
    如果流没错的的话吧
    试试 吧Imageimg= Image.FromStream(ms); 后面加个上一句话bitmap  bt  =new  bitmap(img);
     或者直接  bitmap    bt=new bitmap(Image.FromStream(ms));
      this.pictureBox1.Image =bt;这样应该好用
      

  7.   


    OleDbCommand dnc_productprogram_code = new OleDbCommand("insert into dnc_productprogram_code (fid,fcode,ftime) values(:fid,:fcode,:ftime)");
                dnc_productprogram_code.Parameters.Add(":fid", SqlDbType.VarChar);
                dnc_productprogram_code.Parameters.Add(":fcode", SqlDbType.VarBinary);
                dnc_productprogram_code.Parameters.Add(":ftime", SqlDbType.DateTime);
                dnc_productprogram_code.Parameters[":fid"].Value = fid;
                dnc_productprogram_code.Parameters[":fcode"].Value = progContent;
                dnc_productprogram_code.Parameters[":ftime"].Value = DateTime.Now;
                idal_dnc.ExcuteCommand(dnc_productprogram_code);