SqlConnection conn = new SqlConnection("server=(local);database=stock;uid=sa;pwd=");
        SqlCommand sel = new SqlCommand("select Doc from tblBooksUpload where DocID=4", conn);
            conn.Open();
            SqlDataReader dr = sel.ExecuteReader();
            if (dr.Read())
            {
                Response.Clear();
                Response.BinaryWrite((byte[])dr["Doc"]);            }
            dr.Close();        
            conn.Close()
这段代码输出原本是图片格式存入的没问题,但换成txt,doc的再绑定image就出现乱码

解决方案 »

  1.   

    保证字段是Image类型,如果你都是以2进制方式处理不该有差别的
      

  2.   

    "各种文档格式以image格式存储" -_-!!!真的是文档吗??如果是文档的话,绑定到image乱码非常正常。数据库里面的image是镜像的意思,image控件是图片的意思。
    要对得上号才不乱码。
      

  3.   

    http://dotnet.aspx.cc/article/ey1xldyv-pidf-43lo-1wfl-fmy5ale1f635/read.aspx
      

  4.   

    字段是image类型,就是以二进制方式处理的
    是不是输出时要进行进一步处理?
    还是不应该全绑定到image控件上?
      

  5.   

    输出当然要处理过的啊
    Image控件只能认识图片,其他的你得SHELL对应的程序去打开
      

  6.   

    net_lover(【孟子E章】) 
    http://dotnet.aspx.cc/article/ey1xldyv-pidf-43lo-1wfl-fmy5ale1f635/read.aspx最后显示的结果有问题啊?
    以txt读入的,显示出现以下问题:无法显示 XML 页。 
    使用 样式表无法查看 XML 输入。请更正错误然后单击 刷新按钮,或以后重试。 
    --------------------------------------------------------------------------------文本内容中发现无效字符。处理资源 'http://localhost/Stock/WebUI/ShowFile.aspx?ID=1' 时出错。 这是为什么?
      

  7.   

    你将text等都转换成二进制再以image存,试试
      

  8.   

    楼上我就是把任意格式文件用二进制以image存的,但读出txt类型有乱码,图象格式的没问题
      

  9.   

    private void Page_Load(Object sender, EventArgs e) {
    string sql="SELECT * FROM TestFiles WHERE ID = '" + Request.QueryString["ID"] + "'";
    SqlConnection connection = new SqlConnection("Server=.;uid=sa;pwd=;Database=TestUploadFile");
    SqlCommand command = new SqlCommand(sql, connection);
    connection.Open();
    SqlDataReader dr = command.ExecuteReader();
    if(dr.Read()){
    Response.Clear();
    Response.AddHeader("Content-Type",dr["FileType"].ToString());
    Response.BinaryWrite((byte[])dr["MyFile"]);
    }
    dr.Close();
    connection.Close();
    }
    当是txt格式时输出问题如下:无法显示 XML 页。 
    使用 样式表无法查看 XML 输入。请更正错误然后单击 刷新按钮,或以后重试。 
    --------------------------------------------------------------------------------文本内容中发现无效字符。处理资源 'http://localhost/Stock/WebUI/ShowFile.aspx?ID=1' 时出错。 这是为什么?
      

  10.   

    //Response.AddHeader("Content-Type",dr["FileType"].ToString());这行注释
      txt格式就可以显示出来,但有乱码
      

  11.   

    你需要用文件本来保存的那种格式对应的Encoding将读出来的byte[]->string
    然后输出。编码问题就是这样引起的
      

  12.   

    //Response.AddHeader("Content-Type",dr["FileType"].ToString());这行注释
    1.responseEncoding="gb2312"可以解决txt乱码问题
    但doc格式的又出现乱码?
    2.如果保留Response.AddHeader("Content-Type",dr["FileType"].ToString());
    则doc格式正常,但问题变为:
    “无法显示 XML 页。 
    使用 样式表无法查看 XML 输入。请更正错误然后单击 刷新按钮,或以后重试。 
    文本内容中发现无效字符。处理资源 'http://localhost/Stock/WebUI/ShowFile.aspx?ID=1' 时出错。 ”
    3.即便解决了输出问题,但东西全济一块,没有原来的格式?
    因为我主要是要处理一些案例,来源任意格式,但希望显示时能像文章那样,有格式和分段之类不是全堆一块
      

  13.   

    你测试用一个image空间接收你的sql返回的结果,看能否显示. 一般都是编码问题