博主是个还在上大学的新手,如果有什么说错的地方请务必帮我指出来,谢谢!

想要完成一个能够动态改变其中数据的水晶报表,可以通过创建一个 数据的中转站来存储和输出数据的方式。

借由这个中转站,我们可以通过为它动态输入数据,然后再将数据导出到水晶报表,来达到得到有动态数据的水晶报表的目的。

仅在vs2008中,很多它自带的应用也可以达到中转站的作用,比如数组,数据集等。

博主最近刚在学SQL所以尝试了用VS连接数据库来做水晶报表。

1.首先,博主在SQL中创建了名为xxs的数据库,然后再在数据库xxs中创建了一张名为xxs_1的表格,同时在其中建立了名为ques的列。

2.然后回到vs2008,创建windows窗体应用程序(博主是为了给数据库录入数据才用窗体的,网友有其他方法就随意了。)

为程序写入代码:

1 SqlConnection conn2 = newSqlConnection();2 conn2.ConnectionString = "server=.;database=xxs;uid=sa;pwd=123";3 conn2.Open();4 SqlCommand cmd2 = newSqlCommand();5 cmd2.Connection =conn2;6 cmd2.CommandType =CommandType.Text;7 string sql2 = "insert into xxs_1(ques) values(@ques)";8 SqlParameter[] parameters2 = newSqlParameter[]9 {10 new SqlParameter("@ques", f)11

12 };13 cmd2.CommandText =sql2;14 cmd2.Parameters.AddRange(parameters2);15 cmd2.ExecuteNonQuery();16 conn2.Close();17 cmd2.Dispose();

其中conn2.ConnectionString是SQL数据库的路径,字符串sql2是将要在SQL中执行的SQL语句,字符串f是要为 “列ques”添加的数据。

为了给列添加足够多的数据,博主用了循环语句,在这里就不细说了,毕竟只是对以上语句进行循环,为f反复赋值,再写入列而已。

3.完成了对数据的录入以后,我们就可以建立水晶报表了。

就如上所说,博主为了给数据库xxs录入数据,所以用了form窗体。

在窗体中博主应用了如下两个button组件。

其中“生成题库”就是应用第2步中的代码为数据库输入数据,而“预览报表”就是我们现在要讲的建立水晶报表了。

在写代码之前,博主先做了一些准备工作。

(1)连接数据库。

点击菜单栏的数据按钮/在打开的菜单中点击添加新的数据源/在弹出的数据源配置向导中选择从“数据库”获取数据源,点击下一步/点击新建连接/在弹出的添加连接窗口中写入服务器名(一般都是.(对,就是个“点”)),选择用SQL SEVER 身份验证,输入用户名和密码,然后就可以在“选择或输入一个数据库名”中写入数据库名了,然后点击确定,点击下一步/进入"选择数据库对象",选择你需要在水晶报表中显示的表和列,点击完成。

(2)创建水晶报表。

右键解决方案资源管理器下的第一个项目/在弹出的菜单栏中选择添加,点击新建项。/在弹出的添加新项中选择Reporting中的Crysal报表(如下)。/

/然后会弹出Crystal report库窗体,选择使用“报表向导“和”标准“,选择确定。/在标准报表创建向导中打开项目数据,打开ADO.NET数据集选择需要的数据库中的表,将它添加到右侧。点击下一步/选择需要的列,将它添加到右侧,点击下一步。/分组和记录选定我没用到,所以直接点击了下一步,样式我选择了表,点击完成。

至此,我们已经完成了对水晶报表的创建。

4,为水晶报表添加数据。

为了使”预览报表“功能可以完善一些,博主又在项目中添加了一个窗体应用程序Form2(如下)。

Form2中只添加一个CrystalReportViewer控件。

然后双击Form2窗体,写入代码:

1 CrystalReport1 cry = newCrystalReport1();2 SqlConnection conn = newSqlConnection();3 conn.ConnectionString = "server=.;database=xxs;uid=sa;pwd=123";4 conn.Open();5 SqlCommand cmd = newSqlCommand();6 cmd.Connection =conn;7 cmd.CommandType =CommandType.Text;8 string sql = "select ques from xxs_1";9 cmd.CommandText =sql;10 DataSet ds = new DataSet();//新建一个临时数据库

11 SqlDataAdapter adt = newSqlDataAdapter();12 adt.SelectCommand =cmd;13 adt.Fill(ds, "inf");//将数据导入到ds中

14 DataTable dt = ds.Tables["inf"];//只是为了后面引用时方便点,直接写ds.Tables["inf"]也是可以的。

用以上代码取出数据库 xxs 中表 xxs_1 中的列 ques 中的数据。

最后再写入代码:

1 cry.SetDataSource(dt);

2 this.crystalReportViewer1.ReportSource = cry;

就可以将数据写入到水晶报表中去了。

5.当然,为了能够反复输入数据到SQL,再导出数据到水晶报表,我们需要在建立水晶报表后清空SQL数据库中数据,所以在结束了以上的一切后还要在最后写入代码:

1 SqlConnection conn1 = newSqlConnection();2 conn1.ConnectionString = "server=.;database=xxs;uid=sa;pwd=123";3 conn1.Open();4 SqlCommand cmd1 = newSqlCommand();5 cmd1.Connection =conn1;6 cmd1.CommandType =CommandType.Text;7 string sql1 = "truncate table xxs_1";8 cmd1.CommandText =sql1;9 cmd1.ExecuteNonQuery();10 conn1.Close();

这样就完成了一张用SQL数据库作为数据中转站的动态数据水晶报表。

下面是效果演示:

当我运行程序按下“生成题库”是,程序会往数据库中添加数据,比如我要生成40道运算题,就可以得到这样的表

再当我按下”预览报表“时,便得到了这样的水晶报表:

c#水晶报表连接mysql_C# 用vs2008连接SQL数据库做动态水晶报表相关推荐

  1. web项目中填写sql信息自动动态生成报表功能(springboot)

    (一)大概 背景: 需求就是设计一个自定义报表功能,当需要新报表时,能够快速的构建. 经过初步的构思,有至少三种方式可以实现: 构建demo代码,一个报表对应编写一套代码,不过可以将重复代码提取,尽可 ...

  2. php实现报表的分组统计sql,PHP做后台数据报表设计简单的统计函数

    相信我们在开发的过程中,最重要的点之一就是--代码的复用性,可读性. 本文主要讲的一个小点就是我们大家在后台开发中,通常会遇到一些数据的统计,多个报表的统计. 那么主要的思路就是把统计的代码块给独立出 ...

  3. Navicat Premium 数据库设计器和报表有什么作用

    Navicat Premium 作为一套常见的数据库管理工具,其功能非常的强大,包括存储过程.事件.触发器.函数.视图等.除了能配合Navicat其他工具,还能支持单一程序同时连接到 PostgreS ...

  4. c 窗体连接mysql_c 窗体如何连接数据库

    如何使用C++ Builder 6.0连接Access数据库 本文假定所需连接的Access数据库为db_restaurant,如何连接db_restaurant,现在将拉开帷幕. 首先,通过使用&q ...

  5. VS2008连接CodePlex的源代码管理服务

    为了更有效的分享部门的.NET代码,我们决定把一些通用的组件源代码通过CodePlex来托管.CodePlex是MS提供的一个第三方源代码托管服务和开源项目管理网站,只要注册了CodePlex用户或者 ...

  6. vs2008和SQL Server使用ADO连接方法

    注意VC中地址要以\\表示!!!!!获取的字符串要修改 学了几天ADO方法,今天也写一写教程~ 时间2012年10月20日 环境: 操作系统:win7- 64bit 编译器:VS2008 数据库:SQ ...

  7. 无法连接到已配置的开发web服务器_Power BI 报表服务器极简安装指南

    ​本文是PowerBI星球嘉宾天行老师的力作,详细介绍了报表服务器的用处以及安装步骤,看完本文,你也可以轻松用上报表服务器,更方便的分享你的PowerBI报告. Power BI 报表服务器极简安装指 ...

  8. 【FineReport】帆软报表平台的安装与连接 SAP HANA 数据库

    [FineReport]帆软报表平台的安装与连接 SAP HANA 数据库 1.下载帆软 2.安装软件 3.连接HANA 4.访问数据 1.下载帆软 (1)帆软最新版本软件下载地址:https://w ...

  9. deno如何连接mysql_c 连接sqlite3数据库

    SQLite C语言接口 数据表设计 create table tbl_emp( id integer primary key , name varchar(40), age smallint, bi ...

最新文章

  1. yum 安装redis默认目录_Centos7 安装redis 详细步骤
  2. spring简单总结part2
  3. Java基础之this关键字的作用
  4. 90后售楼人员的肺腑之言:再便宜你也不能买的房子(转)
  5. java标注释_跪请JAVA高手帮忙标一下注释
  6. Python的冷技巧小技巧
  7. html全局布局 vue_基于Vue+Element的电商后台管理系统
  8. case的执行顺序 嵌套使用
  9. LeetCode OJ - Populating Next Right Pointers in Each Node II
  10. clion 查看内容窗口_苹果电脑(macOS)查看 WiFi 密码的两种方法
  11. mysql workbench 从model建库_使用MySQL Workbench进行数据库设计——MySQL Workbench用法总结...
  12. 查询加索引oracle,指定索引/*+INDEX(TABLE INDEX_NAME)*/等优化Oracle查询效率的总结
  13. 常见面试算法:回归、岭回归、局部加权回归
  14. C语言基础教程之递归
  15. 深入浅出SCSI子系统(六)SCSI 磁盘驱动
  16. KDJ算法详解,比百度百科要详细
  17. [C#] NAudio 各种常见使用方式 播放 录制 转码 音频可视化
  18. 2020年网络搭建与应用国赛题-防火墙ipsec建立分解
  19. Android acra 日志上报,android acra错误日志上报
  20. Elasticsearch 索引别名应用

热门文章

  1. python语言的优点及与其他语言相比
  2. 自己做了个开题以及毕业答辩PPT模板
  3. 7天物联网智能家居实战训练营学习分享
  4. 史上最简单的抖音吸粉方法大全
  5. 武邑中学2021高考成绩查询,拼百日酬壮志 誓圆梦铸辉煌——河北武邑中学2021年高三年级决胜高考誓师大会...
  6. 重邮计算机科学与技术宁静苑3,新生特辑(二)| 史上最新的重邮建筑介绍!错过无!!...
  7. 大数据推动人工智能发展的五个趋势
  8. 【转载】用Gazebo仿真UUV水下机器人(古月居)
  9. 【名场面临摹 之 马里奥·奥德赛】3.2 马里奥的步行循环(Walk Cycle)动画(4月21日更新)
  10. 吉利集团发展史成本演化(一天的成果)