基于ASP .NET的自定义SQL报表系统设计与实现
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
基于的自定义SQL报表系统设计与实现
摘要:利用编程技术,通过对自定义SQL语句查询结果的分析,结合的特点,将SQL语句涉及的列保存起来,并根据需要设置对应的格式,在展现时生成对应的控件呈现在用户面前,用户更改控件值,发起查询请求后,系统将根据控件类型自动生成带条件的SQL语句,最后把执行结果呈现在表格控件中,实现了自定义SQL报表的管理与展现。
关键词:;;SQL;自定义报表
0 引言
在企业日常数据维护中,经常会遇到从各个系统提取数据的情况。一般来说,数据管理员会登录PL/SQL Developer、SQL Server Management Studio等软件,来连接数据库,编写具体的查询SQL语句,执行SQL语句并导出为Excel文件,然后交给需求者。在每天的工作中,需要几次甚至几十次地重复上述操作,工作效率非常低。为解决此问题,本文提出了一个可行的解决方案,开发了基于数据源的自定义SQL查询系统。
1 关键技术
1.1 数据库访问技术
[1]是.Net Framework提供的针对数据库访问的通用解决方案,提升了底层数据库访问的扩展性、安全性,并优化了执行效率。它通过网络对数据库进行访问。
这种数据库访问机制能够以连接池的形式管理数据库连接,合理分配数据访问请求,同时能够提供数据缓存,改进数据共享机制,所以它的出现使得数据库编程更加容易。包含两个主要成员:DataSet和Data Providers[2],Data Set主要负责对数据的操作,而Data Providers则主要负责数据访问。
DataSet是数据在内存中的表示形式。它包括一个或者多个DataTable对象,DataTable对象由数据行(Data Row)、数据列(Data Column)、主键、外键、约束以及有关Data Table对象组成。DataSet 能够被所有的Data Providers调用。
Data Providers是数据库和应用程序之前的纽带,接收到命令后,从数据源读取数据返回结果,向数据源提交数据,在数据源上执行一系列的命令。正是它的存在,使得应用程序可以跟数据库分离开,或者说使得应用程序能够适配多种数据库。
1.2 SQL语言
SQL(Structured Query Language)[3]即结构化查询语言,是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统。SQL是高级的非过程化编程语言,是沟通数据库服务器和客户端的重要工具,允许用户在高层数据结构上工作。它不要求用户指定对数据的存放方法,也不需要用户了解具体的数据存放方式,所以,具有完全不同底层结构的不同数据库系统,可以使用相同的SQL语言作为数据输入与管理的接口。它以记录集合作为操作对象,所有SQL语句接受集合作为输入,返回集合作为输出,这种集
合特性允许一条SQL语句的输出作为另一条SQL语句的输入,所以SQL语句可以嵌套,这使它具有极大的灵活性和强大的功能,这意味着可以通过编写SQL语句控制查询数据源。
本课题的实现原理是通过数据库访问技术在不同的数据源上执行自定义的SQL语句,并取得返回的数据集[4]。
在一个标准的查询语句中,例如Select Name from StudentList where Age>10中,Name 是需要展示出来的字段,StudentList是数据源,Age>10是查询条件,对SQL语句进行更改,会得到不同的结果。本课题研究是为了实现通过SQL语句自定义数据源,以及对展示字段的自定义和对查询条件的自定义。
2 概要设计
2.1 功能划分及数据描述
本课题在设计上分两个模块:查询管理模块、查询展示模块。
2.1.1 报表管理模块
系统根据用户输入的SQL语句,在指定的数据库上执行后,将返回结果集的字段列表展现,将需要展示的字段、查询条件保存下来。根据字段类型,可以选择查询形式,比如时间类型可以弹出时间选择器,下拉列表类型可以弹出下拉框;数值类型可以输入起始值;文本类型可以输入搜索文字。
2.1.2 报表展示模块
系统根据保存在数据库中的查询条件自动生成对应的控件集合,用户输入或者选择值后,在后台生成标准的查询SQL语句,并按需
要展示的字段形成DataTable,展示在前台页面。
2.2 系统数据流
管理员编写SQL语句,在查询数据源执行后,返回结果集结构,提取字段列表,按需设置查询条件及类型,并保存。用户需要调取数据时,首先读取自定义查询条件,生成查询控件页面,用户对各个控件进行输入,点击查询,系统会根据用户输入自动生成标准的SQL 语句,提交到数据源,随后系统会把查询结果根据设置的展示字段呈现给用户。如图1所示。
图1 系统数据流
2.3 需求分析
2.3.1 功能划分及数据描述
(1)报表管理模块。将客户的个性化查询条件进行管理,可以保存SQL语句源、设置字段的类型、设置字段是否显示、设置字段是否为查询条件,能够增加字段、修改字段、删除字段。同时,能够通过选择不同的数据连接实现对不同数据库的查询。
构成:报表ID、报表名称、数据连接、数据源、字段名、字段类型、是否查询、是否显示、字段默认值、字段显示排序值。
(2)报表展示模块。能够提取自定义查询条件,并以此生成SQL 查询语句,在数据源上执行后,将数据结果展示给用户。
构成:报表ID、报表名称、数据连接、数据源、字段名、字段类型、是否查询、是否显示、字段默认值、字段显示排序值。
2.3.2 数据库设计