oracle 中有一blob(long字段也可以)字段,存入着图片或html网页,如何把网页和图片以流形式存入二进制字段?如何把二进制字段内容显示到网页上?关键是如何显示,有谁知道吧?
Response.ContentType = dr["htmltype"].ToString();
Response.BinaryWrite((byte[])dr["htmlcontent"]);
这样运行时出错,说明无法转换成byte[]

解决方案 »

  1.   

    我以前做过,你想显示数据库里面存的图片等内容,你必须知道其中存储的是那种格式的文件,那样才可以写出来
    SqlDataReader show_dr=show_cmd.ExecuteReader();
    if(show_dr.Read())
    {
    Response.Clear();
    //图片的二进制码存储数据,即图片
    Response.AddHeader("Conntent-Type","show_dr["file"].ToString()");
    Response.ContentType=show_dr["filetype"].ToString();//图片的类型
    Response.BinaryWrite((byte[])show_dr["file"]);//输出图片
    Response.End();
    }
    show_dr.Close();
      

  2.   

    SqlDataReader show_dr=show_cmd.ExecuteReader();
    if(show_dr.Read())
    {
    Response.Clear();
    //图片的二进制码存储数据,即图片
    Response.AddHeader("Conntent-Type",show_dr["file"].ToString());
    Response.ContentType=show_dr["filetype"].ToString();//图片的类型
    Response.BinaryWrite((byte[])show_dr["file"]);//输出图片
    Response.End();
    }
    show_dr.Close();
      

  3.   

    byte[] ib =(byte[])dr[Request.QueryString["field"]];
    string values = System.Text.Encoding.GetEncoding("gb2312").GetString(ib,0,2);
    这个 values是提取前两个字符,可以来判断类型。
      

  4.   

    SqlDataReader show_dr=show_cmd.ExecuteReader();
    if(show_dr.Read())
    {
    Response.Clear();
    //图片的二进制码存储数据,即图片
    Response.AddHeader("Conntent-Type",show_dr["file"].ToString());
    Response.ContentType=show_dr["filetype"].ToString();//图片的类型
    Response.BinaryWrite((byte[])show_dr["file"]);//输出图片
    Response.End();
    }
    show_dr.Close();
    不行啊,我用的是oracle ,字段是 blob,用oledb方式读取不行,select语句包含了blob字段,
    运行时出错,说是不认识数据类型,没办法用oracleclient的方式读取,结果blob字段存图片的能显示,存网页的显示不了,怎么办?用oledb方式怎么处理?oracleclient方式有专门处理blob字段的方法,我忘了,有谁知道?