C# 实现reportview的操作,详解。

这篇具有很好参考价值的文章主要介绍了C# 实现reportview的操作,详解。。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、vs2015中没有reportview组件,需要安装。

在VS中选择工具——Nuget包管理器——程序包管理器控制台

执行命令:Install-Package Microsoft.ReportingServices.ReportViewerControl.WinForms -Pre

然后在VS的工具——选择工具箱项——.NetFramework下,选择“浏览”,然后在工程根目录下的“\packages\Microsoft.ReportingServices.ReportViewerControl.Winforms.xx\lib\net40”目录下选择“Microsoft.ReportViewer.WinForms.dll”文件(其中xx代表Microsoft.ReportingServices.ReportViewerControl.Winforms.140.1000.523后面的数字)。

C# 实现reportview的操作,详解。

或者在VS的项目——管理NuGet程序包——浏览中搜索并安装

若添加后是15.0版本的,需要.net4.6才能编译成功。

 二、若安装后仍有问题,需更新VS2015的安装。

勾选上以下三个选项,安装即可。

C# 实现reportview的操作,详解。

三、报表的使用步骤

  1. 添加数据集类(.xsd)

C# 实现reportview的操作,详解。

 在数据集文件中添加DataTable,并编辑字段,Ctrl+l为添加字段的快捷键,字段默认string类型。

C# 实现reportview的操作,详解。

2. 添加报表类(.rdlc)

C# 实现reportview的操作,详解。

在报表文件中可添加文本框、矩阵、表,为他们绑定数据集里的字段。

C# 实现reportview的操作,详解。

 文本框可通过传递参数的方式更新数据。

 C# 实现reportview的操作,详解。

若在开发过程中发现在数据集里添加新的字段,而rdlc文件中没有显示的问题,那是因为rdlc文件不会根据数据集文件中的字段进行自动更新,需要手动更新。

把rdls文件以xml的方式打开

C# 实现reportview的操作,详解。

C# 实现reportview的操作,详解。

 打开后,下拉到最后,可以删除添加字段,添加后rdlc文件中便可查看和选择了。

 C# 实现reportview的操作,详解。

 3. 在form窗体中添加reportview组件,单击右上角的小箭头,选择rdlc文件即可。

C# 实现reportview的操作,详解。

四、上代码:三种方式实现数据的传递与更新

 //方式一:查询数据,把结果直接赋值给reportview
        public void  QueryData()
        {

            string MyConn = "server=" + serverIP + ";uid=" + userName + ";pwd=" + password
           + ";database=" + databaseName + ";Trusted_Connection=no";

            SqlConnection MyConnection = new SqlConnection(MyConn);

            string strSql = "select  *  from  SJJRDCJ where 1=1";

            SqlCommand MyCommand = new SqlCommand();
            SqlDataReader mySqlDataReader;
            DataSet MyDataSet = new DataSetNew();//把已创建好的数据源赋值给数据集变量

            try
            {
                //打开连接并执行sql语句
                MyConnection.Open();
                MyCommand.CommandType = CommandType.Text;
                MyCommand.Connection = MyConnection;
                MyCommand.CommandText = strSql;
                mySqlDataReader = MyCommand.ExecuteReader(); //执行sql语句,把读取的结果给SqlDataReader类的实例

                //把读取来的数据加载到数据集中。
                MyDataSet.Tables[0].Load(mySqlDataReader);

                //关闭读取及其连接
                mySqlDataReader.Close();
                MyConnection.Close();

                //为查看器提供本地报表数据
                reportViewer1.LocalReport.ReportPath = "Report2.rdlc";//把Report2.rdlc 文件放在bin目录下。
                reportViewer1.LocalReport.ReportEmbeddedResource = "Report2.rdlc";//获取或设置报表嵌入资源的名称

                //准备报表数据源
                ReportDataSource rds = new ReportDataSource();
                rds.Name = "DataSetNew";//这个名字别错了
                rds.Value = MyDataSet.Tables[0];
                reportViewer1.LocalReport.DataSources.Clear();
                reportViewer1.LocalReport.DataSources.Add(rds);//把数据源加载到reportview中去
                
                reportViewer1.RefreshReport();


            }
            catch (Exception ex)
            {

                MessageBox.Show(ex.Message);
            }

            finally
            {
                if(MyConnection.State == ConnectionState.Open)
                {
                    MyConnection.Close();
                }
            }

        }
 //方式二:datatable 为数据源的方式。
        private void UpdatePatientInfo()
        {
            DataTable dt = new DataTable();
            dt.Columns.Add("Name", typeof(string));
            dt.Columns.Add("Sex", typeof(string));
            dt.Columns.Add("Age", typeof(string));
            dt.Columns.Add("KeShi", typeof(string));
            dt.Columns.Add("CheckNum", typeof(string));
            dt.Columns.Add("BedNum", typeof(string));
            dt.Columns.Add("ZhuYuanNum", typeof(string));
            dt.Columns.Add("Height", typeof(string));

            DataRow row = dt.NewRow();
            row[0] = "张一";
            row[1] = "男";
            row[2] = "23";
            row[3] = "神经科";
            row[4] = "1456432";
            row[5] = "394";
            row[6] = "93493494399";
            row[7] = "168cm";
            dt.Rows.Add(row);

            reportViewer1.LocalReport.ReportPath = "Report2.rdlc";//把Report2.rdlc 文件放在bin目录下。
            reportViewer1.LocalReport.ReportEmbeddedResource = "Report2.rdlc";//获取或设置报表嵌入资源的名称
            reportViewer1.LocalReport.DataSources.Clear();
            reportViewer1.LocalReport.DataSources.Add(new ReportDataSource("DataSetNew", dt));//这里的DataSetNew数据集的名称,而不是xsd文件名。

            reportViewer1.RefreshReport();

        }
 //方式三:通过设置参数的方式把值传给reportview,前提是依附于设定好数据源,也就是说必须先执行方法一或者方法二。
        private void SetCanShu()
        {
            reportViewer1.ShowParameterPrompts = true;

            ReportParameter titleName = new ReportParameter();
            titleName.Name = "ReportParameter1";
            titleName.Values.Add("标题");

            ReportParameter danWeiName = new ReportParameter();
            danWeiName.Name = "ReportParameter2"; 
            danWeiName.Values.Add("单位名称");

            reportViewer1.LocalReport.SetParameters(new ReportParameter[] {danWeiName,titleName });
            reportViewer1.RefreshReport();
        }

源代码请查看我的资源:C#对reportview的使用-数据集文档类资源-CSDN下载文章来源地址https://www.toymoban.com/news/detail-479486.html

到了这里,关于C# 实现reportview的操作,详解。的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • vs2015、vs2017、vs2019、msvc自动编译脚本

    rem 记录编译时间 echo ** 版本构建开始时间: %date% %time% build.log rem 设置编译器进程名 set DstProgram=devenv.exe rem 搜索目标进程以及其目录 echo 正在搜索\\\"%DstProgram%“, 请稍候… for %%a in (“C:Program Files (x86)”, “C:Program Files”, “D:Program Files (x86)”, “D:Program Files”) do for /f “delim

    2024年02月06日
    浏览(82)
  • win10安装VS2015

        VS2015是一个非常好用的开发平台,支持C、C++、C#、F#等语言,下面介绍在win10系统上安装VS2015。     在 MSDN i tell you 里找到VS2015专业版,这里选择VS2015 Update3,点击【详细信息】,复制ed2k地址,然后使用迅雷下载即可,如图(1)所示。     VS2015专业版的ed2k地址: 图(1) 下

    2024年02月08日
    浏览(65)
  • vs2015 工程组织与动态加载

    10.Visual Studio动态加载_哔哩哔哩_bilibili (1)cnn.h (2)dnn.h  (3)rnn.h (1)factory_impl.h  (2)factory_impl.cpp 现在要把上面的工程改成动态加载:   (1)nn_api.h (2)nn_api.cpp (1)cnn.h (2)dnn.h (3)rnn.h (1)factory_impl.h (2)factory_impl.cpp

    2024年02月15日
    浏览(83)
  • VS2022无法打开Silverlight 项目的问题:改用VS2015

    警告: Microsoft Silverlight 已于 2021 年 10 月 12 日终止支持。 Silverlight 开发框架目前仅在 Internet Explorer 10 和 Internet Explorer 11 上受支持,对 Internet Explorer 10 的支持将于 2020 年 1 月 31 日结束。 不会再支持 Chrome、Firefox 或使用 Mac 操作系统的任何浏览器。 根据微软官方的解释: S

    2024年02月05日
    浏览(55)
  • VS2015+opencv 3.4.6开发环境

     这里提供两种下载方法:   1. opencv官网   2. csdn资源下载  2.1 下载opencv-3.4.6 安装包  2.2 双击开始安装,选择要安装目录,点击Extract。  2.3 等待解压完成,解压完成后窗口会自动关闭。

    2024年02月07日
    浏览(35)
  • win10安装Visual Studio 2015(VS2015)提示0x80070643、0x8007066-错误

    遇到问题: 提示: 安装程序失败,打包失败 错误代码:0x80070643 日志错误: Error 0x80070666: Cannot install a product when a newer version is installed 安装VS2015时提示 0x80070643错误 搜到了官网回复:  (网页链接: 安装VS2015时提示 0x80070643错误 - Microsoft Community https://answers.microsoft.com/zh-hans/w

    2024年02月07日
    浏览(62)
  • VS2008 VS2010 VS2015 VS2019不同版本的.sln 和 .csproj的区别

    1、 VS2008 .sln 文件 .csproj 文件 2、VS2010 .sln 文件 .csproj 文件 3、VS2015 .sln 文件 .csproj 文件 4、VS2019 .sln 文件 .csproj 文件

    2024年02月13日
    浏览(42)
  • vs2015调试时无法显示QT变量值

    问题描述:         vs2015调试时无法显示 QT变量值,只能显示地址,导致想要查看变量值的时候,只能想办法打印出来,非常麻烦。如下图:   问题解决:         调试 - 选项 - 调试 - 常规 - 去掉 使用本机兼容性模式,默认是勾选的         亲测可用    

    2024年02月12日
    浏览(35)
  • 【Visual Leak Detector】在 VS 2015 中使用 VLD

    使用 VLD 内存泄漏检测工具辅助开发时整理的学习笔记。 同系列文章目录可见 《内存泄漏检测工具》目录 目录 说明 1. 使用前的准备 2. 在 VS 2015 中使用 VLD 2.1 无内存泄漏时的输出报告 2.2 有内存泄漏时的输出报告 3. 无法正常使用的可能原因 参考本人另一篇博客 安装 Visual

    2023年04月15日
    浏览(45)
  • vs2010、vs2015 编译报错:error MSB6006: “CL.exe”已退出,代码为 -1073741515

    问题: 描述: 相同的代码,之前能够编译正常,移动到其他电脑,本次是移动到一台win7虚拟机上,编译(新装系统),出现上述问题。 解决方案: 1、推荐使用everything搜索工具,搜索cl.exe,因为我虚拟机上安装了两个版本vs,分别是vs2010和vs2015: 2、然后双击cl.exe,会出现提示

    2024年02月16日
    浏览(55)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包