"mywinform.CrystalReport1.NewGenerator":没有找到合适的方法重写

"mywinform.CrystalReport1.NewGenerator":没有找到合适的方法重写
"mywinform.CrystalReport1.FullResourceName":没有找到合适的方法重写


昨天在练写报表的时候,突然出现了这个问题,没在意.去google,baidu了一下,竟然找不到答案.只好自己慢慢摸索.
VS我用的是2010,由于没有预装水晶报表,于是在网上download个,CRforVS_redist_install_32bit_13_0这样一个 MSI文件,是13.0.2000.0版本的,工具栏中看到控件是13.0.2000.0的版本,
图片 

由于在BS下写报表的时候并没有出现这样的问题.,因为BS下使用控件后在源视图里面可以看到该Crystal的版本,VS默认的还是会写成<%@ Register assembly="CrystalDecisions.Web, Version=10.2.3600.0, Culture=neutral, PublicKeyToken=692fbea5521e1304" namespace="CrystalDecisions.Web" tagprefix="CR" %>
把这个版本号改回来13的,去web.config文件里面找这个版本号,发现
图片 
有好几个地方都是10.2.3600.0版本的,细看一下,也就是这几个命名空间:
CrystalDecisions.ReportSource 
CrystalDecisions.Shared
CrystalDecisions.CrystalReports.Engine  
应该是全改成13.0.2000.0,就好了看,再一仔细看
发现版本10的和版本13的都有.....于是,删除版本10的.....
于是 正常了..伴随而来的问题是:
图片
之前写的时候也遇到过这样的问题,也就重新写了一次,又可以了....迷糊...
目前正在研究中...

我一般会在webconfig下把那个13的版本号复制到该控件的版本号上,所以BS下没有出过这样的问题,

在CS下没找到在哪看那个版本.几个相关的CS文件都没有显示,
所以一直脑子里都在想是不是版本的问题,
控件CrystalReportviewer拖到窗体上的时候,自动添加了引用,
且来看看这个引用的版本是多少.右键--属性一看,茅舍(xx)顿开啊,
图片
本图是修改后版本号的
于是乎,一串删除,添加之后,该错误没有了.吔.... 
网上有朋友说只要不用

            CrystalReport1 cr = new CrystalReport1();
            cr.SetDataSource(appCode.DALL.getAllInfo().Tables[0]);
            crystalReportViewer1.ReportSource = cr;

这种方式,用 

            ReportDocument rdoc = new ReportDocument();
            rdoc.Load(Server.MapPath("CrystalReport1.rpt"));//这是BS下的.CS的可以用Application.StartupPath
            rdoc.SetDataSource(appCode.DALL.getAllInfo().Tables[0]);
            CrystalReportViewer1.ReportSource = rdoc;

            CrystalReportViewer1.DataBind();  
这样就可以不要水晶报表的CS文件,试了下,确实..不过问题搞明白了好点..

原文地址:https://www.cnblogs.com/unintersky/p/2872566.html