asp.net2.0(c#)读oracle中的图片,不能显示的问题!求助!!

wlwhhy 2006-12-21 08:46:11
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上确能执行成功,正确显示出图片来
...全文
248 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
wlwhhy 2007-01-01
  • 打赏
  • 举报
回复
自已的问题自已解决
Xpengfee 2006-12-22
  • 打赏
  • 举报
回复
向大家学习.....
wlwhhy 2006-12-22
  • 打赏
  • 举报
回复
只要能解决,我还可以加分
wlwhhy 2006-12-21
  • 打赏
  • 举报
回复
.Doc的.XLS的.dwf的都读的是正确的,而且能打开,就是.bmp .jpg .gif的所有关于图片的都不行
请帮忙,谢谢!!!
hy_lihuan 2006-12-21
  • 打赏
  • 举报
回复
你应该是数据读取错了,你调试一下看看是不是其他数据读取怎么样
wlwhhy 2006-12-21
  • 打赏
  • 举报
回复
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);
}
cpp2017 2006-12-21
  • 打赏
  • 举报
回复
没看到GetItemByWDBH 方法?
wlwhhy 2006-12-21
  • 打赏
  • 举报
回复
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;
}
}

}
这是我的取数的类,没有错啊!请高手指教
cpp2017 2006-12-21
  • 打赏
  • 举报
回复
应该是取数据时出错了.
ustbwuyi 2006-12-21
  • 打赏
  • 举报
回复
写到硬盘上也无法显示?是不是你取的方法有问题?
wlwhhy 2006-12-21
  • 打赏
  • 举报
回复
读出来是有长度的,和送进去一样,我也尝试将bData写到硬盘上,发现图片也无法显示了,但是人家的C/S的程序读出来都可以,为什么我用的asp.net读出来就不对呢,人家是用PB读的
ustbwuyi 2006-12-21
  • 打赏
  • 举报
回复
而且以上代码在sql server上确能执行成功,正确显示出图片来

难道是oracle的原因?楼主跟踪一下,看看读出来的数据都正确否
wlwhhy 2006-12-21
  • 打赏
  • 举报
回复
加了,没有用啊?
cpp2017 2006-12-21
  • 打赏
  • 举报
回复
try:
Response.Clear();
Response.ContentType = sContentType;
Response.BinaryWrite(bData);
Response.End();


另外确定 sContentType != ""

cpp2017 2006-12-21
  • 打赏
  • 举报
回复
最后一句加了Response.End()没?

62,073

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧