asp.net – 使用数据集时无法正确绑定晶体报告,显示缺少参数
发布时间:2020-12-16 07:41:44 所属栏目:asp.Net 来源:网络整理
导读:当我使用DSN作为数据源时,我有水晶报告正常工作. 问题是我现在正在使用数据集.数据集包含我需要的所有表,并使用存储过程从数据库填充数据. 但是,通过这种方式,它会抛出一个错误:“缺少参数”. 我这样做: 步骤1:创建Dataset1.xsd并使用数据连接从其中插入
当我使用DSN作为数据源时,我有水晶报告正常工作.
问题是我现在正在使用数据集.数据集包含我需要的所有表,并使用存储过程从数据库填充数据. 但是,通过这种方式,它会抛出一个错误:“缺少参数”. 我这样做: 我的代码从数据库中获取数据然后将其合并到Dataset1实例并将其作为源文件提供给crystal报告如下: Private Sub ReportByDataset(ByVal rptDoc As CrystalDecisions.CrystalReports.Engine.ReportDocument) 'new code Dim myConnection As New SqlClient.SqlConnection() 'myConnection.ConnectionString = "server= (local)NetSDK;database=pubs;Trusted_Connection=yes" Dim ds As New DataSet1 myConnection.ConnectionString = System.Configuration.ConfigurationManager.ConnectionStrings("HighriseContractingWebConnectionString").ConnectionString myConnection.Open() Dim MyCommand As New SqlClient.SqlCommand() MyCommand.Connection = myConnection MyCommand.CommandText = "SP_Web_GetReportTables" MyCommand.CommandType = CommandType.StoredProcedure Dim MyDA As New SqlClient.SqlDataAdapter() MyDA.SelectCommand = MyCommand Dim myDS As New DataSet MyDA.Fill(myDS) myConnection.Close() ds.Tables("RABill_RPT").Merge(myDS.Tables(0),MissingSchemaAction.Ignore) myDS.Tables(0).Reset() ds.Tables("RA_bills").Merge(myDS.Tables(1),MissingSchemaAction.Ignore) ds.Tables("Work_Completion").Merge(myDS.Tables(2),MissingSchemaAction.Ignore) ds.Tables("contractor").Merge(myDS.Tables(3),MissingSchemaAction.Ignore) ds.Tables("WO_Header").Merge(myDS.Tables(4),MissingSchemaAction.Ignore) ds.Tables("Project").Merge(myDS.Tables(5),MissingSchemaAction.Ignore) ds.Tables("contractor_1").Merge(myDS.Tables(6),MissingSchemaAction.Ignore) ds.Tables("Users").Merge(myDS.Tables(7),MissingSchemaAction.Ignore) ds.Tables("Users_Approved").Merge(myDS.Tables(8),MissingSchemaAction.Ignore) ds.Tables("voucher").Merge(myDS.Tables(9),MissingSchemaAction.Ignore) ds.Tables("Employee_Approve").Merge(myDS.Tables(10),MissingSchemaAction.Ignore) ds.Tables("Employee").Merge(myDS.Tables(11),MissingSchemaAction.Ignore) ds.Tables("Account").Merge(myDS.Tables(12),MissingSchemaAction.Ignore) ds.Tables("TDS").Merge(myDS.Tables(13),MissingSchemaAction.Ignore) ds.Tables("WO_Detail").Merge(myDS.Tables(14),MissingSchemaAction.Ignore) ds.Tables("V_WO_BlockTaskNo").Merge(myDS.Tables(15),MissingSchemaAction.Ignore) ds.Tables("TASK").Merge(myDS.Tables(16),MissingSchemaAction.Ignore) ds.Tables("Cont_Voucher").Merge(myDS.Tables(17),MissingSchemaAction.Ignore) ds.Tables("Cont_Voucher_1").Merge(myDS.Tables(17),MissingSchemaAction.Ignore) ds.Tables("Cont_Voucher_2").Merge(myDS.Tables(17),MissingSchemaAction.Ignore) ds.Tables("Company").Merge(myDS.Tables(18),MissingSchemaAction.Ignore) ''new code ends rptDoc.SetDataSource(ds) CRReport.HasCrystalLogo = False CRReport.HasToggleGroupTreeButton = False CRReport.ReportSource = rptDoc CRReport.DataBind() End Sub 但它不起作用,我错过了什么.使用DSN同样工作正常它不是参数的问题,同样是其他方式正常工作. 下图显示了Dataset1作为数据源 解决方法
两种可能性 – 你在哪里得到参数丢失错误抛出?如果它位于存储过程SP_Web_GetReportTables上,则不会在MyCommand上为该sproc添加任何参数.如果它位于报告本身上,请检查报告本身侧面的字段资源管理器,并查看是否有任何已定义的参数,这些参数是使用DSN遗留的.由于您现在直接传入数据集,因此无需传入任何参数.最后,如果使用Crystal Report Viewer,只需设置ReportSource即可显示它,我不确定DataBind正在做什么您.
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- 在 Xunit 中使用依赖注入
- asp.net三层架构增删改查
- asp.net-mvc – 处理onchange事件在HTML.DropDownList Razo
- asp.net-mvc – 如何在Custom Helper中合并htmlAttributes
- asp.net-web-api2 – 在控制器操作中获取JSON Web Token有效
- asp.net – 菜单控件生成的js导致Web窗体中的Sys未定义的异
- asp.net-mvc – Automapper映射到嵌套类
- asp.net – MVC IIS7 = CSS问题
- 如何在asp.net会员中手动更改密码?
- asp.net – 当modal设置为TRUE时,jQuery UI对话框出现问题
推荐文章
站长推荐
- 在ASP.net Webforms中,如何检测有人按下哪个文本
- asp.net – 如何动态更改母版页
- powershell – InvalidOperation:(System.Net.H
- asp.net-mvc – 如何从控制器关闭ASP.NET MVC页面
- asp.net-mvc-3 – “update-database”的实体框架
- asp.net – 如何向DropDownList添加初始“select
- asp.net-mvc – 添加TwilioController基类继承后
- ASP.NET:它是否涉及Active X?
- asp.net – 在string.format中添加单行if语句
- 缩小ASP.NET应用程序的Html输出
热点阅读