开发工具与关键技术:Visual Studio 和 ASP.NET.MVC,
作者:陈MR
撰写时间:2019年6月12日
最近做项目的时候做到了打印功能这一块,在运行的时候呢它就报了一个错误,什么错误呢如图
为能够更清楚的看出问题的所在我就点击了继续运行就会在页面上显示出“/”应用程序中的服务器错误。接着就会说明: 执行当前 Web 请求期间,出现未经处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息,错误的详细是什么这在哪里什么地方第几行就如图中显示出这个错误的是:.Payment 和 .Payment 的属性冲突: DataType 属性不匹配。在第几行,第315行代码是什么,内容是什么,等等。这问题该怎么解决呢,我们先看一下代码源,图下所示。查询已经省略!
//将查询出来的数据转化为DataTable的格式
DataTable dtResult = LINQToDataTable(listCluBlo);
//1、实例化数据集
StampDevelop.tbContend dbReport = new StampDevelop.tbContend();
//2、将dtResult放入数据集中名为“tbCluBlo”的表格中
dbReport.Tables[“tbCluBlo”].Merge(dtResult);//这就是错误的语句
//3、实例化数据报表
StampDevelop.FengChao rp = new StampDevelop.FengChao();
//4、获取报表的物理文件路径
string strRpPath = Server.MapPath("~/") + “Areas\MyStatement\StampDevelop\FengChao.rpt”;
//5、将报表加载到报表模板中
rp.Load(strRpPath);
//6、设置报表的数据源
rp.SetDataSource(dbReport);
//7、将报表转化为文件流输出
Stream dbStream = rp.ExportToStream(CrystalDecisions.Shared.ExportFormatType.PortableDocFormat);
return File(dbStream, “application/pdf”);
为什么代码执行到第二步就报错执行不下去呢?那就要说起你在建打印的格式那里开始了,首先呢就要找到你原来创建好的打印格式文件夹找到打印名如: 这个自己创建的名字,然后双击打开找打你原来编辑的表格如图: 然后右键找到属性就会弹出属性的功能框找到如图: 中的数据图中点击左边的tbCluBlo里面的字段就会在右边显示该字段的属性,而字段的属性要和数据所给的数行要相同不然就不报错:.Payment 和 .Payment 的属性冲突: DataType 属性不匹配。相对应的报错。只要把数据的属性改回来就可以了如果你的字段属性是datetime的就不要用datetime了吧数据类型改为string属性,这就是本次的错误。改完之后运行点击打印,弹出提示框提示:确定要导出当前表格中数据吗?是请点击确定,否则请重新筛选数据再导出!点击确定打印的数据就出来了。如图所示: