szg 发表于 2019-3-14 13:52:36

报表内如何显示数据库里保存的BYTE[]类型的图片



      void OnLocateDataSource(object sender, LocateDataSourceEventArgs args)
      {
            args.Data = LoadData();
      }
      DataSet LoadData()
      {
            selectDB("select * from CalculateData order by 日期,时间");
            return (FDataSet);
      }

执行后日期可以显示出来,但图片没有显示。在报表设计里面预览会报错如下:
错误明细:
GrapeCity.ActiveReports.ReportException: 发生了一个意外错误。更多信息: 'No data has been set. Please specify either a DataSet or a DataView to use' ---> System.InvalidOperationException: No data has been set. Please specify either a DataSet or a DataView to use
   在 GrapeCity.ActiveReports.Extensions.EnumerableExtensions.MemoizedBuffer`1.#7kY(Boolean& hasValue)
   在 GrapeCity.ActiveReports.Extensions.EnumerableExtensions.MemoizedBuffer`1.<GetEnumerator_>d__2a.MoveNext()
   在 System.Linq.Enumerable.WhereSelectEnumerableIterator`2.MoveNext()
   在 System.Linq.Buffer`1..ctor(IEnumerable`1 source)
   在 System.Linq.Enumerable.ToArray(IEnumerable`1 source)
   在 GrapeCity.ActiveReports.DataProcessing.DataProcessor.<>c__DisplayClass17.#mg1(ExecutionContext exc)
   在 GrapeCity.ActiveReports.DataProcessing.DataProcessor.<>c__DisplayClass10.#8r0(ExecutionContext exc)
   在 GrapeCity.ActiveReports.DataProcessing.DataProcessor.<>c__DisplayClass3b.#U.#sZh.#NE0(#TRZ fn)

KearneyKang 发表于 2019-3-14 16:47:54

首先你的图片是存在数据库里,存储的格式需要是二进制的形式,并且绑定的样式如下:



szg 发表于 2019-3-15 14:04:52

问题还没有解决,报表里的图片控件属性按上设置了,测试图片还是没有显示。我把报表的数据源由dataset改成设计报表时直接连接数据库,数据库连接成功了。但图片字段还是无法显示。直接连接数据库方式我从新发了一个贴子“WinForm连接ACCESSS数据库显示图片出错”。请帮帮忙看一下“WinForm连接ACCESSS数据库显示图片出错”帖子,直连成功显示图片后,我们在动态加载dataset记录集来显示图片。

KearneyKang 发表于 2019-3-15 18:01:38

我这边根据你提供的测试数据验证也显示不了,还需进一步确认
页: [1]
查看完整版本: 报表内如何显示数据库里保存的BYTE[]类型的图片