大家帮我看看这段代码那里错了
public string bind()
{
StringBuilder sb=new StringBuilder();
strsql="select docid,fileid,rowed,filecon from docmapfile";
OracleDataAdapter da = new OracleDataAdapter(strsql,conn);
da.Fill(ds);

this.text1.Value=ds.Tables[0].Rows[0].ItemArray[0].ToString();
this.text2.Value=ds.Tables[0].Rows[0].ItemArray[1].ToString();
this.text3.Value=ds.Tables[0].Rows[0].ItemArray[2].ToString(); byte[] barrImage=(byte[])ds.Tables[0].Rows[0].ItemArray[3];
MemoryStream ms=new MemoryStream(barrImage);
System.Drawing.Image image = System.Drawing.Image.FromStream(ms,true);
image.Save(Response.OutputStream , ImageFormat.Jpeg);
sb.Append(image.ToString()); conn.Close();

return sb.ToString();
}
报System.Drawing.Image image = System.Drawing.Image.FromStream(ms,true);使用了无效参数,我的ms时有值的

解决方案 »

  1.   

    byte[] byteImage = (byte[])ds.Tables[0].Rows[0][图片列名称];

    byte[] byteImage = (byte[])ds.Tables[0].Rows[0][图片列名称];
    Image img = (Image)ConvertFrom( byteImage );
      

  2.   

    ConvertFrom的命名空间时什么,C#语法
      

  3.   

    change
    byte[] barrImage=(byte[])ds.Tables[0].Rows[0].ItemArray[3];
    MemoryStream ms=new MemoryStream(barrImage);
    System.Drawing.Image image = System.Drawing.Image.FromStream(ms,true);with
    byte[] barrImage=(byte[])ds.Tables[0].Rows[0].ItemArray[3];
    MemoryStream ms=new MemoryStream(barrImage, true);
    ms.Read( barrImage, 0, barrImage.Length );
    ms.Position = 0;
    System.Drawing.Image image = System.Drawing.Image.FromStream(ms);
      

  4.   

    或者修改
    byte[] barrImage=(byte[])ds.Tables[0].Rows[0].ItemArray[3];
    MemoryStream ms=new MemoryStream(barrImage);
    System.Drawing.Image image = System.Drawing.Image.FromStream(ms,true);为
     MemoryStream ms=new MemoryStream();
     pictureBox1.Image.Save(ms, System.Drawing.Imaging.ImageFormat.Bmp);
     byte[] barrImage = ms.ToArray();
     ms.Close();
    其中,pictureBox1.Image是你的图片,barrImage是转换后的二进制流。
      

  5.   

    我试过了,你的ms肯定没值,我的机器运行你的代码没问题.你这个叶面只能当做一个图片,有什么问题q我吧(121442994),
    我也做过将数据库图片字段显示出来的项目。
    见到你的写法以为能将其它控件和图片放在同一个页面,结果发现还是和我的一样,将整个页面变成图片,只不过写法不同。
      

  6.   

    Jinpanxu(浪)我不是没的值,而是把值存错了,我想请教你怎么把图片转换成二进制,我转换的是16进制
      

  7.   

    晕倒。如果数据库里保存的是图片,你的那段代码完全没问题(当然,整个页面都只是显示图片,有待修改).如果数据库里保存的是图片路径,那就
    1)保证保存图片的文件夹要在网站内。
    2)如果数据库里保存的图片路径是图片和要显示图片的网页的相对路径那么Image.ImageUrl = @"图片和要显示图片的网页的相对路径";就能显示图片了。
    3)如果数据库里保存的图片路径不是图片和要显示图片的网页的相对路径那么就用replace()将 一些字符将数据库里保存的图片路径置换成图片和要显示图片的网页的相对路径