资源描述
目 录
第一章 前言 1
第二章 开发环境 2
2.1 NET开发环境简介 2
2.2 ASP.NET简介 5
第三章 系统总体功能概述 9
3.1 系统功能模块的分类 9
3.2 各系统功能模块间的关系 15
第四章 查询功能的设计 16
4.1 用户查询 16
4.2 综合查询 19
4.3 项目查询 23
第五章 数据库的结构 24
5.1 管理员账号表 24
5.2 用户留言表 24
5.3 在线解答表 25
5.4 项目申报信息表 25
5.5 用户注册信息表 26
5.6 管理员留言表 27
结束语 28
致谢 29
参考文献 30
附录 31
前 言
随着科学技术的迅速发展,人们对科研管理工作的复杂性和可靠性提出了更高的要求,原来的人工管理模式已远远不能满足科研管理的需要,在这种情况下,我们小组开发了《科研业绩管理系统》。
《科研业绩管理系统》的开发基于B/S模式,使用ASP.NET为其开发平台,SQL Server 2000为其后台数据库支持,整个程序基于.NET框架构建,比以往的ASP程序具有更容易的跨平台集成性,并拥有更高的安全性可可靠性,通过运行库的支持,它能自动回收内存,有效降低系统资源利用率。
本系统分为登录模块、项目申报模块、查询模块、统计模块等四个模块,具备科研管理所需的基本功能,能满足一般科研项目管理的需要。
本小组负责的查询模块,主要通过ADO.NET技术对数据库进行访问,编程模型在所有的典型数据访问中都是统一的。通过ADO.NET的数据集对象DataSet对SQL数据源的一致访问,使查询模块功能健全、安全,具有广泛的移植性。
第二章 开发环境
2.1 NET开发环境简介
2.1.1 Visual Studio.NET
Visual Studio.NET 是Microsoft公司新一代的可视化编程工具,用于生成桌面应用程序、ASP Web应用程序等。Visual Studio.NET不仅对已有的语言进行了更新,还引入了一种新的语言C#,这些语言全都使用相同的集成开发环境(IDE),该环境允许它共享工具并有助于创建混合语言解决方案。另外,这些语言利用了.NET Framework(框架)的功能,此框架提供对简化ASP Web应用程序和XML Web services开发的关键技术的访问。
本系统Visual Studio.NET 2003为其开发工具,使用和sql server数据库进行程序开发,以B/S为工作模式 ,在IIS5.0以上环境运行。启动Visual Studio.NET时,如果你是vb或c++的开发人员,可以在我的配置文件中选择相应的窗口配置。默认窗口布局包括菜单栏、工具栏、服务器、解决方案资源管理器窗体、活动帮助窗体等。其中服务器资源管理器和工具箱窗体沿默认窗口的左侧自动隐藏放置,只显示名称标签。解决方案资源管理器和类视图以选项卡形式停靠在右侧。
Visual Studio.NET 提供了方便的菜单和强大功能,你可以使用它设计、开发、调试Web应用、Web 服务和Windows应用程序。
2.1.2 NET Framework简介
.NET Framework 是一种新的计算平台,它简化了在高度分布式 Internet 环境中的应用程序开发。
.NET Framework 具有两个主要组件:公共语言运行库和 .NET Framework 类库。公共语言运行库是 .NET Framework 的基础。您可以将运行库看作一个在执行时管理代码的代理,它提供核心服务(如内存管理、线程管理和远程处理),而且还强制实施严格的类型安全以及可确保安全性和可靠性的其他形式的代码准确性。事实上,代码管理的概念是运行库的基本原则。以运行库为目标的代码称为托管代码,而不以运行库为目标的代码称为非托管代码。.NET Framework 的另一个主要组件是类库,它是一个综合性的面向对象的可重用类型集合,您可以使用它开发多种应用程序,这些应用程序包括传统的命令行或图形用户界面 (GUI) 应用程序,也包括基于 ASP.NET 所提供的最新创新的应用程序(如 Web 窗体和 XML Web services)。
公共语言运行库管理内存、线程执行、代码执行、代码安全验证、编译以及其他系统服务。这些功能是在公共语言运行库上运行的托管代码所固有的。
至于安全性,取决于包括托管组件的来源(如 Internet、企业网络或本地计算机)在内的一些因素,托管组件被赋予不同程度的信任。这意味着即使用在同一活动应用程序中,托管组件既可能能够执行文件访问操作、注册表访问操作或其他须小心使用的功能,也可能不能够执行这些功能。运行库强制实施代码访问安全。
此外,运行库的托管环境还消除了许多常见的软件问题。
运行库还提高了开发人员的工作效率。程序员可以用他们选择的开发语言编写应用程序,却仍能充分利用其他开发人员用其他语言编写的运行库、类库和组件。任何选择以运行库为目标的编译器供应商都可以这样做。以 .NET Framework 为目标的语言编译器使得用该语言编写的现有代码可以使用 .NET Framework 的功能,这大大减轻了现有应用程序的迁移过程的工作负担。
运行库旨在增强性能。尽管公共语言运行库提供许多标准运行库服务,但是它从不解释托管代码。一种称为实时 (JIT) 编译的功能使所有托管代码能够以它在其上执行的系统的本机语言运行。同时,内存管理器排除了出现零碎内存的可能性,并增大了内存引用区域以进一步提高性能。
最后,运行库可由高性能的服务器端应用程序(如SQL Server和 Internet 信息服务 (IIS))承载。此基础结构使您在享受支持运行库宿主的行业最佳企业服务器的优越性能的同时,能够使用托管代码编写业务逻辑。
2.1.3 NET Framework 类库
.NET Framework 类库是一个与公共语言运行库紧密集成的可重用的类型集合。该类库是面向对象的,并提供您自己的托管代码可从中导出功能的类型。这不但使 .NET Framework 类型易于使用,而且还减少了学习 .NET Framework 的新功能所需要的时间。此外,第三方组件可与 .NET Framework 中的类无缝集成。
.NET Framework 类型使您能够完成一系列常见编程任务(包括诸如字符串管理、数据收集、数据库连接以及文件访问等任务)。除这些常见任务之外,类库还包括支持多种专用开发方案的类型。例如,可使用 .NET Framework 开发下列类型的应用程序和服务:
控制台应用程序。
Windows GUI 应用程序(Windows 窗体)。
ASP.NET 应用程序。
XML Web services。
Windows 服务。
Windows 窗体类是一组综合性的可重用的类型,它们大大简化了 Windows GUI 的开发。如果要编写 ASP.NET Web 窗体应用程序,可使用 Web 窗体类。
2.1.4 服务器应用程序开发
在托管领域中,服务器端应用程序是通过运行库宿主实现的。非托管应用程序承载公共语言运行库,后者使您的自定义托管代码可以控制服务器的行为。此模型在获得主服务器的性能和可伸缩性的同时提供给您公共语言运行库和类库的所有功能。
2.1.5 客户端应用程序开发
客户端应用程序在基于 Windows 的编程中最接近于传统风格的应用程序。这些是在桌面上显示窗口或窗体从而使用户能够执行任务的应用程序类型。另一种客户端应用程序是作为 Web 页通过 Internet 部署的传统 ActiveX 控件(现在被托管 Windows 窗体控件所替代)。此应用程序非常类似于其他客户端应用程序:它在本机执行,可以访问本地资源,并包含图形元素。包含在 .NET Framework 中的 Windows 窗体类旨在用于 GUI 开发。您可以轻松创建具有适应多变的商业需求所需的灵活性的命令窗口、按钮、菜单、工具栏和其他屏幕元素。
.NET Framework 提供简单的属性以调整与窗体相关联的可视属性。某些情况下,基础操作系统不支持直接更改这些属性,而在这些情况下,.NET Framework 将自动重新创建窗体。这是 .NET Framework 集成开发人员接口从而使编码更简单更一致的许多方法之一。
2.2 ASP.NET简介
2.2.1 ASP.NET
ASP.NET 不仅仅是下一版本的 Active Server Page (ASP);它是统一的 Web 开发平台,用来提供开发人员生成企业级 Web 应用程序所需的服务。ASP.NET 的语法在很大程度上与 ASP 兼容,同时它还提供一种新的编程模型和结构,用于生成更安全、可伸缩和稳定的应用程序。可以通过在现有 ASP 应用程序中逐渐添加 ASP.NET 功能,随时增强该 ASP 应用程序的功能。
ASP.NET 是一个已编译的、基于 .NET 的环境,可以用任何与 .NET 兼容的语言(包括 Visual Basic .NET、C# 和 JScript .NET.)创作应用程序。另外,任何 ASP.NET 应用程序都可以使用整个 .NET Framework。开发人员可以方便地获得这些技术的优点,其中包括托管的公共语言运行库环境、类型安全、继承等等。
当创建 ASP.NET 应用程序时,开发人员可以使用 Web 窗体或 XML Web services,或以他们认为合适的任何方式进行组合。每个功能都能得到同一结构的支持,使您能够使用身份验证方案,缓存经常使用的数据,或者对应用程序的配置进行自定义,这里只是列出几种可能性而已。
使用 Web 窗体可以生成功能强大的基于窗体的 Web 页。生成这些页时,可以使用 ASP.NET 服务器控件来创建公共 UI 元素,以及对它们进行编程以用于执行常见的任务。这些控件使您能够用可重复使用的内置或自定义组件生成 Web 窗体,从而简化页面的代码。
与 ASP 相比,ASP.NET 对象模型变化显著,它更为结构化并且面向对象。但这也意味着 ASP.NET 不是完全向后兼容的;几乎所有现有的 ASP 页都必须经过一定程度的修改后才可以在 ASP.NET 下运行。此外,对 Visual Basic .NET 的一些主要更改也意味着,用 Visual Basic Scripting 版本编写的现有 ASP 页通常将不会直接移植到 ASP.NET 中。不过,在大多数情况下,只需对少数几行代码进行必要的修改。
从 ASP.NET 应用程序访问数据库是向 Web 站点访问者显示数据的常用技术。ASP.NET 使得为此目的而对数据库的访问比以往更加方便。它还使您能够从您的代码管理数据库。ASP.NET 利用 .NET Framework 和公共语言运行库中的性能增强功能。另外,它还可以提供相对于 ASP 和其他 Web 开发平台来说显著的性能改进。所有 ASP.NET 代码都是编译的,而不是解释的,这就允许对本机代码采用早期绑定,强类型处理,以及实时 (JIT) 编译,这里只列举几个优点而已。
2.2.2 创建 ASP.NET Web 应用程序
ASP.NET 是统一的 Web 开发平台,用来提供生成企业级 Web 应用程序所必需的服务。ASP.NET 的语法在很大程度上与 Active Server Page (ASP) 兼容,同时它还提供一种新的编程模型和结构,用于生成功能强大的新型应用程序。ASP.NET 是 .NET Framework 的组成部分,它使您能够充分利用公共语言运行库的功能,如类型安全、继承、语言互操作和版本控制。
2.2.3 ASP.NET 数据访问
.NET Framework 包含一种名为 ADO.NET 的新的数据访问技术,它是对 ADO 的改进。通常以两种方法之一使用从数据库检索到的数据。这些记录可能由 ASP 代码进行检查和操作以为某些其他操作进行准备,而不直接显示给客户端,或者,记录可能只是以表或网格的形式显示给客户端。此主题中的示例显示如何将典型的 ADO 方案转换到 ADO.NET。这些简短示例所阐释的只是有关 ADO.NET 模型的大量信息的很小一部分;它仅仅是有关如何将通用的 ASP 和 ADO 方案移植到 .NET Framework 的快速概述。
创建一个 ADO.NET DataSet 对象,数据集可以由一个或多个构成内存驻留数据库的 DataTables、DataRelations 和 Constraints 的集合组成,因此 ADO.NET 数据集比 ADO 记录集灵活得多。
为了使用 ADO.NET,需要导入 System.Data 和 System.Data.OleDb 命名空间。如果数据源是 SQL Server 数据库,则导入 System.Data.SqlClient 命名空间而不是 System.Data.OleDb。
2.2.4 在控件中显示数据
为了在浏览器中以表格格式显示数据库数据,一直以来,ASP 开发人员不得不辛苦地编写代码以在数据中间散布 HTML 标记来生成 HTML 表。ASP.NET 包含 DataGrid、DataList 和 Repeater 等服务器控件,它们大大简化了在 Web 页上显示表格数据的任务。ADO.NET 数据集可以很容易地绑定到这些控件。使用某一控件的 ASP.NET 引擎可以将纯 HTML 3.2 发送到浏览器,为用户生成格式丰富的布局。
第三章 系统总体功能概述
该科研管理系统总体上有:登录注册模块、查询模块、统计模块、申报模块四个模块组成,下面对其逐一进行概述
3.1 系统功能模块的分类
3.1.1 登录注册模块
登录模块包括:用户注册、登录和注销三部分。
用户注册:按照(图3.1所示)如实填写职工资料,等待管理员的审核通过,并且在输入时系统会对一些重要信息提供限制,具体如下:
职工号限定长度为四位,两次输入密码必须相同(前后两次输入的密码由控件CompareValidator确定),时间必须按所提示格式或(yyyy-mm-dd)格式输入,工资必须大于100,但也不能太大,否则数据溢出。备注为可选项,填写完整后点提交,否则会提示“不能有空项,请填写完整”(编程实现Response.Write)。
用户注册成功之后就要等待管理员的审核了,管理员查看了用户信息后,如果属实,则通过审核。用户通过审核之后,就能通过登录页面进入系统,进行各项操作。否则除了用户注册,管理员登陆,和首页这几个页面以外不能进入其它页面。
图3.1
登录:包括普通用户登录和管理员登录;普通用户即为已被管理员审核通过的注册用户,登录以后可以进行相应的操作;管理员在登陆之后进入管理页面,进行用户的审核,论文审核,论文删除等各项管理操作。(其登录界面分别如图3.2和图3.3所示)
图3.2 图3.3
3.1.2 项目申报模块
申报模块包括项目申报、已申报项目修改、项目审核以及论文删除等功能。
<1>项目申报和修改:项目申报页面(如图3.4)主要有几个TextBox控件组成:题目行ID属性为subject,TextMode属性为SingleLine;职工号行ID属性为zgid,该职工号为在首页登录时所输入的职工号,主要通过在Page_Load事件中添加如下代码实现:Me.zgid.Text = Session("zgid");密码行ID属性为pwd,TextMode属性为Password,另外通过编程实现与数据库联接来判断输入密码是否正确;成果行TextMode属性为MultiLine;类别行是一个DropDownList控件,用来选择申报的项目类别,它的Items属性值为:科研项目、奖励、论文;在设计中还在窗体中加入了Web窗体组件RangeValidator和CompareValidator分别用来限制输入的分值范围(小于100大于1)和输入的完成日期的格式(yyyy/mm/dd或yyyy-mm-dd)。另外在该页面中还可以通过在‘你想干什么!’下拉列表框中选择实现申报项目的修改。
<2>项目审核及论文删除:该功能是在管理员登录之后由管理员操作完成的。用户申报完成后,管理员可以审核页面中看到所有未通过审核的申报项目,管理员可以查看某项目是否符合要求,然后决定是否通过审核;如果要删除职工论文,只需进入删除页面找到该论文点击删除即可。
如果注册用户有什么疑问,可以给管理员留言或提出问题,管理员可以回复留言或对问题进行回答。
图3.4
3.1.3 项目统计模块
统计模块包括:信息统计和项目统计两个功能模块。
<1>信息统计是对教职工个人的各种项目信息的统计,其中包括科研项目、教研项目、论文、奖励等进行的统计。在该统计中默认显示的是全部职工号的统计信息。如果要汇总某职工的信息只需在下拉控件中选择相应的职工号,就可对其信息汇总,如职工号为0001,显示结果如图3.5
图3.5
<2>项目统计属于后台项目管理,只有管理员才有权对其统计,然后将其各种信息保存成Access数据表格的形式,打印并存档,年终给予奖励或惩罚。其中包括时实汇总、年度业绩结算、按部门汇总、按职称汇总。具体设计思路如下:
(1)时实汇总:主要指对教职工的科研项目、教研项目、论文、奖励等审核后的实际分数(factpoint),即对申报的项目进行汇总。该功能通过对两个表的操作来实现的(项目表item和登记表register),并用控件Lbcount1记录符合条件的记录数。最后将数值保存在登记表中。由于时实汇总是对全部教职工的汇总,所以在此“选择条件”项不能对其操作,让其不可见。且“超过分值的职工一览表”与“未达到要求的职工一览表”的Visiable值也为假。单击“执行”后的界面如图3. 6所示:
图3.6
其实现的部分程序代码如下:
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click ‘button1 为“执行”按钮
Select Case Me.DropDownList1.SelectedIndex
Case 1
loadregister()
Me.table3.Visible = True
Me.DataGrid1.Visible = True
Me.DataGrid2.Visible = False
Me.DataGrid3.Visible = False
Me.lbcount1.Visible = True
Me.lbcount2.Visible = False
Me.lbcount3.Visible = False
Me.table4.Visible = False
Me.table1.Visible = False
Case 2, 3, 4
yearcount()
Me.DataGrid1.Visible = False
Me.DataGrid2.Visible = True
Me.DataGrid3.Visible = True
Me.lbcount1.Visible = False
Me.lbcount2.Visible = True
Me.lbcount3.Visible = True
Me.table3.Visible = False
Me.table4.Visible = True
Me.table1.Visible = True
End Select
End Sub
单击〔保存〕可以将汇总的数据保存,其默认文件名为myfile.xls,默认类型为Miscrosoft Excel工作表。
(2)年度业绩结算:此功能模块主要为按年度进行结算,对教职工年度总结,并给予相应的奖罚措施。其设计思路为:通过对教职工登记表和教职工申报表的操作实现按年度对其进行总结。在选择“执行”后,每页显示5条记录(通过设置DataGrid控件的PageSize属性),并设置了相应的分页命令。
在该页中的“全部职工分值一览表”此时应为不可见(代码见上),显示“超过分值的职工一览表”与“未达到要求的职工一览表”这两个表的内容,并给出教职工的奖罚规定。返回教职工人数,以便对其更好地管理。
(3)按部门汇总:此功能模块是对各个不同的部门的教职工进行汇总,它与年度业绩结算相似,只显示“超过分值的职工一览表”与“未达到要求的职工一览表”这两个表的内容,但此时的选择条件为可见的,管理员可以选择相应的系别来对其具体的统计。
(4)按职称汇总:此功能模块与“按部门汇总”模块的设计思路一样,这里不再赘述。
3.1.4 项目查询模块
查询模块包括用户查询、项目查询、综合查询三块内容。
用户查询可以按照姓名、申报题目、系别、职称、提交时间等申报项目表中的各个字段进行逐一查询,并且系统中设置了每页显示的记录数,可以方便用户分页浏览;项目查询可以按照申报项目提交顺序查询浏览全部已申报的项目,并且可以按照各个字段排序;综合查询是可以通过各种条件对申报项目进行查询的查询,而且可以对姓名和项目名称进行模糊查询,如果什么也不输入默认为查询全部项目。
它们的俱体功能和实现过程将在下一章中详细介绍,这里不再赘述。
3.2 各系统功能模块间的关系
以上所概述的四个模块是本系统的核心部件,它们之间是相互联系、相互影响的,例如:用户只有先登录,才能进行查询、申报等操作;但是要想登录必须先有帐号,而帐号是要先注册的,注册后还得要管理员通过,如果管理员不通过即使注过册也不能登录,管理员操作之前也得先登录;还有项目统计也要管理员登录之后才能进行操作,所有操作完成之后要注销离开。这些操作是在前台完成的,而俱体的实现步骤就需要后台的支持了。
第四章 查询功能的设计
如上一章介绍,查询模块包括用户查询、项目查询、综合查询三块内容,在这一章中我将对它们加以详细地讲解:
4.1 用户查询
4.1.1 用户查询的操作
其操作界面如图4.1所示,在字段下拉列表框中选择查询字段,在“内容”文本框或“综合查寻条件”文本框中输入要查询的字段的值,“内容”文本框中的值为要查询的字段等于该值;“综合查寻条件”的两个文本框中的内容分别为值1和值2,它和字段组成的条件为:字段小于等于值2并且大于等于值1,如果只输入值1或值2,系统默认为是查询大于值1或小于值2的记录。根据所选择的字段的不同系统会判定“内容”和“综合查寻条件”谁可用谁不可用,例如:要查询“姓名”为“1111”的职工申报的项目。需要先在下拉列表框中选择“姓名”,这时“综合查寻条件”文本框不可用,在“内容”中输入1111,单击“查询”即可;如要查询“提交时间”在1982-05-20之后在2005-6-13之前的申报项目,就要在下拉列表框中选择提交时间,在“综合查寻条件”框1中输入1982-05-20在框2中输入2005-6-13即可。
图4.1
4.1.2 用户查询的实现
在【解决方案管理器】中添加一个新的Web窗体,名字改为chaxun.aspx,在该窗体中主要添加的控件及其属性如下表所示:
控件
DropDownList
TextBox(3个)
DataGrid
Button
Text
无
无
查询
ID
DropDownList1
TextBox 1,query1, query2
DataGrid1
Button1
表4.1
控件DropDownList的其它属性:设置其AutoPostBack值为Ture,在其属性框中点击Items属性的(Collection)值,弹出“ListItem集合编辑器”对话框,点“添加”按钮,分别添加以下成员:姓名、申报题目、申报类型、未审核、系别、职称、总分值、提交时间,其中姓名的Selected属性值为True,其它的均为False,成员的Value值分别为:name、subject、type、auditing、department、job、factpoint、refertime。
控件DataGrid,将其AutoGenerateColumns设为False,Allowpaging属性为True,然后点击Columns属性的(Collection),弹出DataGrid1属性对话框,选中“绑定列”,点击“>”按钮,在“BoundColumn属性”块的“页眉文本”框中输入“职工号”,“数据字段”框中输入”zgid”,并照此步骤再依次添加姓名、类别、题目、完成时间、分值、项目简介六个绑定列,其数据字段分别为name、type、subject、finishtime、point、summary,然后在“项目简介”之前插入一个模板列,在其“TemplateColumn属性”块的“页眉文本”框中输入“是否审核”,单点“确定”。
进入Web窗体的代码窗口,定义一个Sub过程loaddata()
Sub loaddata()
Try
con.Open()
sqlstr()
da = New SqlDataAdapter(sql, con)
da.Fill(ds, "item")
Me.DataGrid1.DataSource = ds.Tables("item").DefaultView
Me.DataGrid1.DataBind()
Catch ex As Exception
Response.Write(ex.ToString)
End Try
End Sub
在DropDownList1的SelectedIndexChanged事件中编写以下程序,来确定三个TextBox控件Enabled属性:
Private Sub DropDownList1_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles DropDownList1.SelectedIndexChanged
Select Case Me.DropDownList1.SelectedValue
Case "factpoint", "refertime"
Me.query1.Enabled = True
Me.query2.Enabled = True
Me.TextBox1.Enabled = False
Case "auditing"
Me.TextBox1.Enabled = False
Me.query1.Enabled = False
Me.query2.Enabled = False
Case "name", "subject", "Type", "department", "job"
Me.TextBox1.Enabled = True
Me.query1.Enabled = False
Me.query2.Enabled = False
End Select
End Sub
其它的程序还有另一个Sub过程sqlstr(),用来定义sql连接字符串;最后编写Button1的Click事件,代码见附录。
4.2 综合查询
4.2.1 综合查询的操作
综合查询顾名思义就是多条件组合查询,在该页面中可以按职工号、姓名、类型、项目名称、完成时间、提交时间、分值字段进行单一字段或多个字段组合查询,还可以查询全部项目、已审核项目或未审核项目,并且会自动生成查询语句,其界面如图4.2
图4.2
4.2.2 综合查询的实现
该界面的框架制作方法与用户查询界面基本相同,先创建一个新的Web窗体名为sql.aspx,在窗体中按图4.2所示创建以下控件:
默认控件名
ID
Width
TextBox1-7
TextBox1-7
224 px
TextBox8
Query1
224 px
RadioButtonList1
RadioButtonList1
288 px
DataGrid1
DataGrid1
813 px
Button1
Button1
64 px
Text=”查询”
表4.2
设置RadioButtonList1控件的其它属性,其RepeatDirection属性值为“Horizontal”,点击其属性框中的Itmes(Collection)弹出“ListItem集合编辑器”对话框,添加三个成员其Text值分别为“全选”、“审核”、“未审核”,“全选”成员的Selected值为True,其它两个成员的Selected值为False,它们的Value值分别为-1、0、1,完成后点【确定】。
进入Web窗体的代码窗口,在窗口最顶部导入语句:
Imports System.Data.Sqlclient,实现对SQL Server数据库进行访问,然后在sql类中定义eXps变量:Dim eXps As String
编写以下代码:
Dim sql As String
Dim con As New SqlConnection("data source=(local);uid=sa;pwd=;database=data1")
Dim da As SqlDataAdapter
Dim ds As New DataSet
实现定义SQL语句串变量、数据库连接字符串、定义数据集DataSet和数据适配器DataAdapter,定义一个Sub过程loaddata():
Sub loaddata()
Try
con.Open() ‘打开数据连接
da = New SqlDataAdapter(sql, con)
da.Fill(ds, "item")
‘用数据适配器da的fill方法填充DataSet
Me.DataGrid1.DataSource = ds.Tables("item").DefaultView
Me.DataGrid1.DataBind()
‘将DataGrid与’item’表绑定
Catch ex As Exception
Response.Write(ex.ToString)
End Try
End Sub
定义sql连接字符串进程sqlstr()
Sub sqlstr()
If Not (TextBox1.Text = "") Then
eXps = "zgid=" & "'" & TextBox1.Text & "'"
End If
If Not (TextBox2.Text = "") Then
If eXps <> "" Then eXps = eXps & " and "
eXps = eXps & "name like " & "'%" & TextBox2.Text & "%'"
End If
If Not (TextBox3.Text = "") Then
If eXps <> "" Then eXps = eXps & " and "
eXps = eXps & "type=" & "'" & TextBox3.Text & "'"
End If
If Not (TextBox4.Text = "") Then
If eXps <> "" Then eXps = eXps & " and "
eXps = eXps & "subject like " & "'%" & TextBox4.Text & "%'"
End If
If Not (TextBox5.Text = "") Then
If eXps <> "" Then eXps = eXps & " and "
eXps = eXps & "finishtime= '" & TextBox5.Text & "'"
End If
If Not (TextBox6.Text = "") Then
If eXps <> "" Then eXps = eXps & " and "
eXps = eXps & "refertime=" & "'" & TextBox6.Text & "'"
End If
If Not (TextBox7.Text = "") Then
If eXps <> "" Then eXps = eXps & " and "
eXps = eXps & "point=" & TextBox7.Text
End If
If (RadioButtonList1.SelectedItem.Value = 0) Then
If eXps <> "" Then eXps = eXps & " and "
eXps = eXps & " auditing=" & "1"
ElseIf (RadioButtonList1.SelectedItem.Value = 1) Then
If eXps <> "" Then eXps = eXps & " and "
eXps = eXps & " auditing=" & "0"
End If
If eXps = "" Then
ql = "select * from item"
Else
sql
展开阅读全文