byte[] bData = null;
    string sContentType = "";       
     string ID = "";
        ID = Request["ID"].ToString();
        WdXxDAL wdxx = new WdXxDAL();
        DataSet ds = wdxx.GetItemByWDBH(ID);
        DataRow dr = ds.Tables[0].Rows[0];
         bData = (byte[])dr["WDNR"];
              
       
        string FileType = dr["wdlx"].ToString().ToLower();
       
        switch (FileType)
        {
           case "jpg":
                sContentType = "image/jpeg";
                break;
            case "jpeg":
                sContentType = "image/jpeg";
                break;
           default:
                sContentType = "";
                break;        }        if (sContentType != "")
        {
           
                Response.ContentType = sContentType;
                Response.BinaryWrite(bData);
          
        }
为什么图片显示不出来,请大侠指点?
vs2005 oracle 9i 我用的是C# 操作系统xp sp2;
大家看看,这是为什么啊,bdata的长度不为0,说明已经把数据读出来了?
而且以上代码在sql server上确能执行成功,正确显示出图片来

解决方案 »

  1.   

    try:
     Response.Clear();
     Response.ContentType = sContentType;
                    Response.BinaryWrite(bData);
    Response.End();
    另外确定  sContentType  != ""
      

  2.   

    而且以上代码在sql server上确能执行成功,正确显示出图片来 难道是oracle的原因?楼主跟踪一下,看看读出来的数据都正确否
      

  3.   

    读出来是有长度的,和送进去一样,我也尝试将bData写到硬盘上,发现图片也无法显示了,但是人家的C/S的程序读出来都可以,为什么我用的asp.net读出来就不对呢,人家是用PB读的
      

  4.   

    using System;
    using System.Collections.Generic;
    using System.Text;
    using System.Data;
    using System.Data.OracleClient;
    using Microsoft.ApplicationBlocks.Data;
    using GotDotNet.ApplicationBlocks.Data;
    using Utility;namespace DAL
    {
        public class WdXxDAL
        {        private const string SQL_SELECT = "SELECT wdbh,wdmc,wdlx,dwf,wdnr,lbdm,wdrq,wdzt,gdr FROM wdxx WHERE ";
            private const string SQL_SELECT_ALL = "1=1 ";
            private const string SQL_WDBH = " wdbh=@WDBH ";
            private const string SQL_LBDM = " lbdm=@LBDM";
          
            private const string SQL_ORDER = " Order By WDBH ";        private const string PARM_LBDM = "@LBDM";
            private const string PARM_WDBH = "@WDBH";
            public WdXxDAL()
            {
            }
            public DataSet GetItemByCustom(OracleParameter[] parms, string strQuery)
            {
                return OrlHelper.ExecuteDataset(Utility.Global.ConnString, CommandType.Text, strQuery, parms);
            }        private OracleParameter[] GetByLBDMParameters()
            {
                OracleParameter[] parms;
                parms = new OracleParameter[] {   
                                               new OracleParameter(PARM_LBDM,OracleType.VarChar  )
                                            };            return parms;
            }
               }}
    这是我的取数的类,没有错啊!请高手指教
      

  5.   

    private OracleParameter[] GetByWDBHParameters()
            {
                OracleParameter[] parms;
                parms = new OracleParameter[] {   
                                               new OracleParameter(PARM_WDBH,OracleType.VarChar  )
                                            };            return parms;
            }
            private void SetByWDBHParameters(OracleParameter[] parms, string ID)
            {
                parms[0].Value = ID;        }
            public DataSet GetItemByWDBH(string WDBH)
            {            OracleParameter[] parms = GetByWDBHParameters();
                SetByWDBHParameters(parms, WDBH);
                string strQuery = SQL_SELECT + SQL_WDBH + SQL_ORDER;
                return OrlHelper.ExecuteDataset(Utility.Global.ConnString, CommandType.Text, strQuery, parms);
            }
      

  6.   

    .Doc的.XLS的.dwf的都读的是正确的,而且能打开,就是.bmp .jpg .gif的所有关于图片的都不行
    请帮忙,谢谢!!!