没有漏什么,,你在字段资源管理器窗口,右键检查下数据库看下,你添加的字段是否会出来,
还有你的myLogo表建好后保存没有?
还有你看看,,他图片是在页眉显示的,,可以不用DataTable,可以直接用参数字段显示,,

解决方案 »

  1.   

    回一楼,新建好的表已经保存了,检查了数据库,字段还是显示不出来,只有一个表名myLogo。苦恼啊...
    谢谢你的帮忙。
      

  2.   


    图片先上传到CSDN控件,再把图片Url复制出来
      

  3.   

    折腾了一番终于可以了,谢谢happy09li提醒。
      

  4.   

    你的DataSet呢?
    也截图看看
      

  5.   

    你重新建一个DataSet,把DataTable加进去,再试一下,
      

  6.   

    把你数据集中的字段pic1 和pic2,在属性框中把类型改为system.byte[]就应该没问题了
      

  7.   

    你试一下下面这个本地图片加载的代码
                DataSet ds = new DataSet();
                ds.Tables.Add("NewTable");
                ds.Tables[0].Columns.Add("id", Type.GetType("System.Int32"));
                ds.Tables[0].Columns.Add("picture", Type.GetType("System.Byte[]"));
                ds.Tables[0].Columns.Add("name", Type.GetType("System.String"));
                string picPath = @"C:\Documents and Settings\jiez\My Documents\My Pictures\logo.jpg";
                AddOneRow(ds.Tables["NewTable"], "1", picPath, "Jackey");
                CrystalDecisions.CrystalReports.Engine.ReportDocument doc = new CrystalDecisions.CrystalReports.Engine.ReportDocument();
                doc.Load(@"C:\Documents and Settings\jiez\桌面\CrystalReportsApplication1\CrystalReportsApplication1\CrystalReport1.rpt");
                doc.SetDataSource(ds.Tables["NewTable"]);
                this.crystalReportViewer1.ReportSource = doc;        public void AddOneRow(DataTable tbl, string c1, string c2, string c3)
            {
                FileStream fs = new FileStream(c2, FileMode.Open);
                BinaryReader br = new BinaryReader(fs);
                DataRow row = tbl.NewRow();
                row[0] = c1;
                row[2] = c3;
                row[1] = br.ReadBytes((int)br.BaseStream.Length);
                tbl.Rows.Add(row);        }
    这里自己创建了一个dataset,并且往里面添加了数据,都是自己进行设定,这样灵活性就很高了,要注意的是这里的数据读取采用的是BinaryReader直接就用二进制的方式进行了读取。如果你这个还是不行的话,建议你换finereport来做试试,它的操作性和易用性都比水晶要好用些,你这个功能在它们的教程里就有,应该可以实现