|M| 200分求救水晶报表:不显示图片的问题,原文件已经上传到网上请大家帮忙看一下

zyciis356 2007-07-29 11:36:51
http://www.yingyi99.com/Source/ReportTest.rar
我已经照着网上的做了,也搜了很多资料就是不显示图片
上面是我的源码 大家看看在哪里出错了

文字都显示出来了,但那个图片就是不显示
还有
程序中要放一个1.jpg图片都C盘
我都已经图片转成Byte[]了 再存为2.jpg的时候说明转Byte[]后数据是没有问题的
但是不知道为什么就是不显示图片出来

谢谢
...全文
314 23 打赏 收藏 举报
写回复
用AI写文章
23 条回复
切换为时间正序
请发表友善的回复…
发表回复
airsheng 2009-12-10
  • 打赏
  • 举报
回复
dataset中图像那列的属性里数据类型改为System.Byte[]
vainnetwork 2007-08-02
  • 打赏
  • 举报
回复
关注,帮顶了.........
SassyBoy 2007-08-02
  • 打赏
  • 举报
回复
我来JF了,哈~~
zyciis369 2007-08-02
  • 打赏
  • 举报
回复
up
bote_china 2007-08-01
  • 打赏
  • 举报
回复
ds.Tables["PrintTicket"]
zyciis366 2007-08-01
  • 打赏
  • 举报
回复
WebForm是 System.Byte[]
zyciis366 2007-08-01
  • 打赏
  • 举报
回复
TicketIMG列要求有效的 DataType。base64Binary

好像base64Binary是WinForm的
bote_china 2007-08-01
  • 打赏
  • 举报
回复
在xsd文件中将PrintTicket的类型改为base64Binary
zyciis364 2007-08-01
  • 打赏
  • 举报
回复
无法将类型为“System.Byte[]”的对象强制转换为类型“System.IConvertible”。不能在 TicketIMG 列中存储 <System.Byte[]>。所需类型是 Byte。
然后我把我的DataSet TicketIMG类型System.Byte 改为 System.Byte[]
可以运行,但是还是没有图片出来

如果你的可以可不可以发一份给我
never52fc@163.com

再加100分
谢谢
zyciis359 2007-07-31
  • 打赏
  • 举报
回复
DataSet ds = new DataSet();
ds.Tables.Add(dt);
DataRow row = ds.Tables["PrintTicket"].NewRow();
//row["TicketID"]=..;
//为对应的字段赋值
System.IO.FileStream fs = new System.IO.FileStream("c:\\1.jpg", System.IO.FileMode.Open);
byte[] bytes = new byte[fs.Length];
fs.Read(bytes, 0,(int)fs.Length);
fs.Close();
row["TicketIMG"] = bytes;
ds.Tables["PrintTicket"].Rows.Add(row);
ReportDocument mydoc = new ReportDocument();
String filePath = Server.MapPath("myReport.rpt");
mydoc.Load(filePath);
mydoc.SetDataSource(ds);
cr1.ReportSource = mydoc;

还是没有图片
而且感觉和我写的没有什么区别
zyciis360 2007-07-31
  • 打赏
  • 举报
回复
那么引用是对的但是他报
ds.Table["PrintTicket"].NewRow(); “Print”并不包含“Table”的定义
fs.Read(bytes,0.bytes.Length); “int”并不包含“bytes”的定义
zyciis360 2007-07-31
  • 打赏
  • 举报
回复
那我的怎么总是报错啊
如果可以显示出图片可不可以给我一份啊
never52fc@163.com
bote_china 2007-07-31
  • 打赏
  • 举报
回复
这个print是看了你的源码后发现的,在你的项目中有一个print.xsd文件,这个就是强类型数据集
xwdd129 2007-07-31
  • 打赏
  • 举报
回复
强类型数据集,是你要向项目里添加一个数据集对象,然后你可以打开并编辑它,报表也可以用它做数据源。

他的Print与你直接用DataSet的区别是,他用的是项目里的数据集(也是一个类),而你是在运行时才生成的一个数据集!
zyciis359 2007-07-31
  • 打赏
  • 举报
回复
你的Print的全命名空间是什么
我运行你的程序都是错误
:
ds.Table["PrintTicket"].NewRow(); “Print”并不包含“Table”的定义
fs.Read(bytes,0.bytes.Length); “int”并不包含“bytes”的定义

谢谢
bote_china 2007-07-31
  • 打赏
  • 举报
回复
protected void Page_Load(object sender, EventArgs e)
{
Print ds = new Print(); ;
DataRow row = ds.Table["PrintTicket"].NewRow();
//row["TicketID"]=..;
//为对应的字段赋值
System.IO.FileStream fs= new System.IO.FileStream("c:\\1.jpg", IO.FileMode.Open);
byte[] bytes= new byte[fs.Length];
fs.Read(bytes,0.bytes.Length);
fs.Close();
row["TicketIMG"]= bytes;
ds.Table["PrintTicket"].Rows.Add(row);
ReportDocument mydoc = new ReportDocument();
String filePath = Server.MapPath("myReport.rpt");
mydoc.Load(filePath);
mydoc.SetDataSource(ds);
cr1.ReportSource = mydoc;
}
bote_china 2007-07-31
  • 打赏
  • 举报
回复
有区别,一个用的是强类型数据集,而你的不是
Print ds = new Print(); //这个是定义一个强类型数据集,在你的项目中可以看见
zyciis358 2007-07-30
  • 打赏
  • 举报
回复
up
zyciis358 2007-07-30
  • 打赏
  • 举报
回复
up
zhjihui_080220 2007-07-30
  • 打赏
  • 举报
回复
我的也是这种情况,数据能显示,就是图片不显示
加载更多回复(3)

4,818

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 图表区
社区管理员
  • 图表区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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