我写了段简单的代码你看一下。
FileStream fs = new FileStream("aa.bmp", FileMode.Open, FileAccess.Read );
byte[] imageData;
imageData = new Byte[fs.Length];
fs.Read(imageData, 0, (int)fs.Length );
fs.Close();
File.Delete("aa.bmp");
DataRow NewRow=this.dt.NewRow();
NewRow["Image"]=imageData;
dt.Rows.Add(NewRow);// b.Dispose();
// gc.Dispose();

CrystalDecisions.CrystalReports.Engine.ReportDocument rd=new
CrystalDecisions.CrystalReports.Engine.ReportDocument();

rd.Load("..\\..\\CrystalReport1.rpt");
rd.SetDataSource(this.dt);

this.crystalReportViewer1.ReportSource=rd;

解决方案 »

  1.   

    to liuxingzi001(liuxingzi)1,那DataSet的数据类型为byte[]还是什么?
    2,那CrystalReport设计器要怎么样才能插入byte[]类型的数据为图片字段呢?
       谢谢
      

  2.   

    回复:问题1
    我们可以在设定这张表时指定 Image 字段的类型为 imageData的类型。
       dt.Columns.Add(new DataColumn("Image",imageData.GetType()));问题2 
      插入图片字段的方法与插入其它类型字段的方法相同。你在做数据集文件时指定该表中的Image类型为base64Binary 就可以了。
    还有什么不明白再问。
      

  3.   

    谢谢
    问题2:在crystalReport设计器插入图片时,将base64Binary类型的字段拖入
           报表中,好像显示的并不是图片,怎么回事?
           需要做什么设置吗?
      

  4.   

    不需要做其它设置,你在设计器中查看一下你当前Image字段的类型。如果是base64Binary就会显示的。
      

  5.   

    如果用ado.net操作图片的话,参看:
    http://support.microsoft.com/default.aspx?scid=kb;EN-US;309158