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 "doc":
                sContentType = "application/msword";
                break;
            case "xls":
                sContentType = "application/vnd.ms-excel";
                break;
            case "asf":
                sContentType = "video/x-ms-asf";
                break;
            case "ppt":
                sContentType = "application/ppt";
                break;
            case "avi":
                sContentType = "video/avi";
                break;
            case "zip":
                sContentType = "application/zip";
                break;
            case "gif":
                sContentType = "image/gif";
                break;
            case "bmp":
                sContentType = "image/bmp";
                break;
            case "jpg":
                sContentType = "image/jpeg";
                break;
            case "jpeg":
                sContentType = "image/jpeg";
                break;
            case "wav":
                sContentType = "audio/wav";
                break;
            case "mp3":
                sContentType = "audio/mpeg3";
                break;
            case "mpeg":
                sContentType = "video/mpeg";
                break;
            case "mpg":
                sContentType = "video/mpeg";
                break;
            case "rtf":
                sContentType = "application/msword";
                break;
            case "htm":
                sContentType = "text/html";
                break;
            case "html":
                sContentType = "text/html";
                break;
            //case "txt":
            //    ContentType = "text/plain";
            //    break;
            //case "dwf":
            //    ContentType = "application/x-dwf";
            //    break;
            default:
                sContentType = "";
                break;        }        if (sContentType != "")
        {
           
                Response.ContentType = sContentType;
                Response.BinaryWrite(bData);
          
        }
为什么图片显示不出来,请大侠指点?
vs2005 oracle 9i 我用的是C# 操作系统xp sp2

解决方案 »

  1.   

    你直接打开页面看有什么东西没有?
    要不直接输出看看
    按理说应该可以啊,我也用过下面这种方法(这非我创的源码)
    Do While (myDtaReader.Read())
        Response.BinaryWrite(myDtaReader.Item("WDNR"))
    Loop
      

  2.   

    http://www.cnblogs.com/pipisong/archive/2005/03/28/127120.aspx
    这是个C#读库中的图片的例子,你看看
    我也一时间不知道你的问题,看你代码好像没有问题,除了你那个类~
    ------------
    睡觉...
      

  3.   

    我的类没有问题,我把图片也读出来了,而且我把bData写到硬盘上以后,发现它已经不能被看图软件打开(acdsee打开什么也没有),这是为什么,难道我读的不对吗,我想没有错啊,而且bdata的长度和图片大小是一样的啊?
    大侠们,帮助啊
      

  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;
            }
            private void SetByLBDMParameters(OracleParameter[] parms, string LBDM)
            {
                parms[0].Value = LBDM;        }
            public DataSet GetItemByLBDM(string LBDM)
            {            OracleParameter[] parms = GetByLBDMParameters();
                SetByLBDMParameters(parms, LBDM);
               
                string strQuery = SQL_SELECT + SQL_LBDM + SQL_ORDER;           
                return OrlHelper.ExecuteDataset(Utility.Global.ConnString, CommandType.Text, strQuery, parms);
            }
            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);
            }
        }}