1、学习目标了解数据库访问技术原理了解C#语言的特点与基本语法了解ADO.NET的功能和结构使用Connection对象连接到数据库使用 DataAdapter对象、DataSet对象进行数据读取与更新使用 DataGridView对象进行数据的绑定显示.NET访问SQL Server 2005数据库应用程序的必要性 直接访问数据库操作麻烦 需要专业的数据库知识:SQL语句,存储过程 应用程序通过数据库访问技术访问数据库,屏蔽复杂性 应用程序提供友好的操作界面.NET访问SQL Server 2005.NET访问SQL Server 20051.当前主流数据库 桌面型数据库:Foxpro,Acce
2、ss。中型数据库:SQLServer,mysql。大型数据库:Oracle,Sybase。巨型数据库:DB2l不同的数据库有不同的访问方法。不同的数据库有不同的访问方法。数据库访问技术.NET访问SQL Server 20052.数据库访问方法l早期数据库访问方法:通过数据库厂商提供的开发接口直接访问,开发效率低,移植性差。DB-LibrarySQLServerCT-LibrarySybaseOCI-LibraryOraclemysql-ibrarymysql.NET访问SQL Server 20052.数据库访问方法lODBC 开放式数据库访问接口:微软开发的用于连接各种关系型数据库的函数库
3、,以动态链接库的形式提供给程序使用,其目的是给出统一的编程接口,从而简化数据库应用程序的编写。SQLServer驱动驱动ODBC访访问问接接口口SQLServerSybase驱动驱动SybaseOracle驱动驱动OracleMysql驱动驱动Mysql应应用用程程序序.NET访问SQL Server 2005lOLE DB数据库访问接口 微软用于替代ODBC的基于COM的方案,其目的是给出操作各种数据源的统一编程接口。主要由OLE DB 提供者构成,相当于ODBC中的驱动程序。面向面向ODBC的的OLEDB驱动驱动ODBC数据库驱动数据库驱动数数 据据 库库OLEDB.NET访问SQL Se
4、rver 2005lJDBC数据库标准访问接口 支持标准SQL功能的通用接口,由Java 语言编写的】类和接口组成,旨在让各个数据库开发商为Java程序员提供标准的数据库访问接口。.NET访问SQL Server 2005l 专用数据库访问接口 通用数据库访问接口可移植性好,性能低。专用接口针对特定的数据库编写,性能高。.NET访问SQL Server 20053.数据库访问接口的使用与封装l直接使用ODBC、OLEDB提供的API进行数据库访问。优点:访问速度快 缺点:API 非常复杂,降低了开发效率l API函数封装成数据库访问对象,如ADO,ADO.NET 优点:简化了程序的开发,提高开
5、发效率 缺点:访问速度相对较低。l针对大多数应用,服务器性能不是主要矛盾,开发中常使用封装好的数据库访问对象进行访问。.NET访问SQL Server 2005lDAO 数据库访问对象 是第一个面向对象的接口。可以通过ODBC驱动程序访问ODBC数据源。在访问Access数据库时,具有很好的性能访问其他的数据源时表现一般。.NET访问SQL Server 2005lRDO数据库访问对象 出现原因:DAO通过ODBC访问关系数据库时表现欠佳 技术特点:以OLE Automation技术直接封装ODBC API,让程序员能够存取关系数据库。lADO数据库访问对象 出现时间:ADO是DAO/RDO的
6、后继产物。技术特点:封装了OLE DB复杂的接口,以极为简单的COM)接口存取数据。访问范围:可以访问文件数据库、客户/服务器数据库甚至非关系型数据库。.NET访问SQL Server 2005l ADO数据库访问对象 出现时间:ADO是DAO/RDO的后继产物。技术特点:封装了OLE DB复杂的接口。访问范围:文件数据库、客户/服务器数据库甚至非关系型数据库。l ADO主要由三种对象构成:Connection:负责连接数据库Recordset:数据库操作返回的记录集Command:发出数据库操作命令,包括执行SQL语句及调用存储过程。.NET访问SQL Server 2005lADO.NET
7、数据库访问对象 继ADO后推出的数据库访问技术,.NET平台上的ADO。.NET访问SQL Server 2005 13.2 开发语言的选择13.2.1 控制台程序编写13.2.2 编写Windows窗体应用程序.NET访问SQL Server 20051.开发语言选择lJ2EE开发平台:Java 2 Platform,Enterprise Edition),是SUN公司定义的开发分布式企业级的应用规范。它提供了一个多层次的分布式应用模型和一系列开发技术规范。.NET访问SQL Server 2005l.NET开发平台:Microsoft基于一组开放的互联网协议,推出的一系列的技术、产品和服务
8、。其框架的基础是采用公共语言运行时环境和基础类库。操作系统公共语言运行时(CLR).Net Framework 类库(FCL).NET访问SQL Server 2005l是Mirosoft专门为.NET量身订制的新一代程序开发语言。拥有C+、Visual Basic、Dephi、Java等语言的优点。语法简洁,彻底的面向对象。完善的错误、异常处理机制。简单、类型安全。l C#的开发方式:使用文本编辑器编写程序代码,然后以.cs保存源文件,并用命令行编辑器(csc)进行编译。其优点是配置要求低,缺点是开发效率低。l使用Visual Studio.NET提供的集成开发环境IDE进行开发。其优点是为
9、开发人员提供了大量的实用,包括自动编译、项目创建向导、创建部署工程等,使得工作效率大大提高。2.NET开发平台支持的开发语言_ C#语言.NET访问SQL Server 2005lVS.net开发环境 VS.net是一个复杂庞大的产品,具有以下功能:把光标放在隐藏的窗口上,便会自动弹出这些窗口。工具箱窗口显示常用的窗体控件,通过简单拖拽操作,可以快速开发图形化界面工程。解决方案资源管理器窗口显示当前解决方案信息,窗口中可以查看解决方案的各种视图。属性窗口显示工程内容更详细的信息,可以对工程中单个控件或它的对象进行配置。例如,可以使用属性窗口改变windows工程中一个按钮的外观、大小等。任务列
10、表窗口和输出窗口显示编译工程时的信息,以及开发环境已经完成的任务。.NET访问SQL Server 2005VS.net开发环境工具箱设计工作区菜单工具栏资源管理区属性区.NET访问SQL Server 2005l创建应用程HelloWorld新建项目.NET访问SQL Server 2005l生成后的开发环境Console.WriteLine(Hello World);添加.NET访问SQL Server 2005l编译C#项目从菜单中选择“生成”“生成解决方案”,该过程将编译项目中包括的所有文件,编译结果显示在“输出”窗口中。如果结果显示“生成:1 已成功,0 已失败,0 已跳过”,则说明
11、已经成功生成,然后即可交付该应用程序.NET访问SQL Server 2005l运行结果.NET访问SQL Server 2005l应用程序文件夹结构 Visual Studio.NET 2005 创建一个与项目同名的文件夹,此处为“Hello World”;该文件夹包含项目文件“Hello World.csproj”和其他关联文件 ;每个新项目都创建了 bin 和 obj 两个文件夹;这两个文件夹下都有一个 Debug 子目录,其中包含可执行文件 HelloWorld.exe;在“解决方案资源管理器”中启用“显示所有文件”选项,可查看“Hello World”项目的结构。.NET访问SQL
12、Server 2005lHello World程序分析/C#编写的一个简单的 HelloWorld 程序using System;namespace HelloWorldclass HelloWorldpublic static void Main()Console.WriteLine(Hello World);声明 HelloWorld 类程序入口点,Main 的返回类型为 void控制台类的 WriteLine()方法用于显示输出结果导入 System 命名空间声明命名空间 HelloWorld.NET访问SQL Server 2005l关于命名空间namespace MySchoolPu
13、blic class Student namespace HisSchool Public class Student .NET访问SQL Server 2005l选择开发模板.NET访问SQL Server 2005l开发环境窗体.NET访问SQL Server 2005l添加按钮.NET访问SQL Server 2005l运行程序.NET访问SQL Server 2005 13.3 认识ADO.NET13.3.1 ADO.NET结构13.3.2 ADO.NET的对象13.3.3 数据绑定技术.NET访问SQL Server 2005lADO.NET是功能强大的数据访问接口.NET应用程序A
14、DO.NETSQL Server 数据库提供程序OLE DB.NET 数据库提供程序SQL Server7.0DB2OracleSQLServerOracleOracle 数据库提供程序.NET访问SQL Server 2005l ADO.NET结构:ADO.NET有两个核心组件:DataSet和.NET数据提供者即.NET Data Provider,包括Connection、Command、DataReader、DataAdapter 4个核心对)。.NET访问SQL Server 2005lADO.NET对象关系图ExecuteNonQuery数据库应用程序DataSetCommandC
15、onnectionDataReaderDataAdapterExecuteReaderExecuteScalarFill()Read()Upate().NET访问SQL Server 2005lADO.NET对象的功能Connection:与数据源建立连接Command:对数据源执行SQL指令并返回结果DataReader:从数据源提取只读、顺序的数据集DataAdapter:在DataSet与数据源之间建立通道,将数据源中的数据写入DataSet,或根据DataSet中的数据改写数据源。DataSet:服务器内存中的数据库.NET访问SQL Server 2005lADO.NET数据库访问流
16、程 连接数据库,由Connection对象负责。命 令 执 行,并 返 回 结 果,进 行 结 果 处 理。通 过Command、DataReader对象进行命令执行与数据处理,也可通过DataAdapter、DataSet对象进行命令的执行与数据处理。命令一般分为两种情况:查询(select语句)、更新(insert、update、insert语句)。.NET访问SQL Server 2005lSqlConnectioni对象:负责数据库的连接和关闭,包含两个方法Open()、Close()和一个属性连接串,用来指明连接数据库的具体参数。.NET访问SQL Server 2005lConne
17、ction对象(1)定义连接字符串 string connString=Data Source=服务器名;Inital Catalog=数据库名;UID=用户名;PWD=密码;(2)创建Connection对象SqlConnection connection=new SqlConnection(connString);(3)打开数据库连接 connection.Open();(4)关闭数据库 connection.Close();.NET访问SQL Server 2005lCommand对象 用于执行SQL指令,以完成对数据源进行各种操作(如读取、写入记录等)。建立Command对象的语法如下
18、:Dimobjcmd As Newsqlcommand(cmdText,Connection)属性说明CommandText 要执行的SQL语句ExecuteNonQuery执行不返回行的语句,如UPDATE、DELETE、INSERT等ExecuteReader返回DataReader对象ExecuteSaclar返回单个值,如执行select count(*)from deparment.NET访问SQL Server 2005lDataReader对象 只能在数据库中进行单方向处理的对象,它是一个只读的记录集。lDataSet对象和DataAdapeter对象Dataset(数据适配器)
19、对象和DataAdapeter(数据集)对象适用于大批量的数据修改和查询,同时可以进行数据离线修改。DataAdapterDataSet数据集数据集数据库数据库.NET访问SQL Server 2005lDataSet对象和DataAdapeter对象使用流程(1)创建 SqlDataAdapter 对象SqlDataAdapter 对象名=new SqlDataAdapter(sql语句,数据库连接对象);(2)创建DataSet对象,并填充数据。SqlDataSet 对象名=new SqlDataSet();DataAdapter对象.Fill(SqlDataSet 对象名,数据表名);(
20、3)更新数据库SqlCommandBuilder builder=new SqlCommandBuilder(DataAdapter对象);DataAdapter对象.Update(SqlDataSet对象,表名);在调用Update方法以前,要利用 SqlCommandBuilder 对象自动生成INSERT、UPDATE、DELETE 命令,以便将数据更新到数据库。.NET访问SQL Server 2005l添加DataGridView控件.NET访问SQL Server 2005l设置DataGridView控件属性.NET访问SQL Server 2005l绑定数据,进行显示为Data
21、GridView对象的DataSource属性指定数据源:DataGridView对象.DataSource=dataSet.Tables数据表名;激活已经设置的绑定,开始进行数据的显示:DataGridView对象.DataBind();.NET访问SQL Server 2005 13.4 使用C#开发数据库应用程序 13.4.1 功能模块化分13.4.2 系统主界面的实现13.4.3 系部管理模块功能的实现.NET访问SQL Server 2005教学管理系统基本信息管理系部信息管理学生信息管理班级信息管理教师信息管理课程管理基本信息管理排课管理课程表管理成绩管理学生成绩管理班级成绩管理教
22、材信息管理教室信息管理成绩单管理.NET访问SQL Server 2005l创建新项目.NET访问SQL Server 2005l创建主界面MainForm.NET访问SQL Server 200513.4.2 系统主界面的实现l在MainForm上创建功能菜单.NET访问SQL Server 2005l创建主菜单及子菜单.NET访问SQL Server 2005lMainForm设置为启动界面(代码省略)l实现“系部信息管理”子菜单13.4.2 系统主界面的实现.NET访问SQL Server 2005l系部管理的实现.NET访问SQL Server 2005任务任务:了解数据库应用系统的主
23、流开发模式,理解开发模式的选择要点。13.5 知识进阶13.5.1 C/S开发模式13.5.2 B/S开发模式13.5.3 开发模式的选择.NET访问SQL Server 2005lC/S(Client/Server)客户/服务器模式,是应用软件开发所使用的最成功的一种模式,在局域网环境下,其性能显的格外的突出。l工作原理:客户端向服务端提交一个请求,服务端处理该请求,并将结果返回给客户端。由于客户端实现与服务器的直接相连,没有中间环节,因此响应速度快。lC/S开发模式也存在着很多缺点:(1)分布能力差,只适用于局域网。(2)无论客户端还是服务器端都需要特定的软件支持,使系统维护复杂,升级麻烦
24、,不利于推广使等。(3)客户端软件是针对性开发,缺少通用性。(4)兼容性差。(5)对客户端的操作系统一般有限制。.NET访问SQL Server 2005l B/S(Brower/Server)浏览器/服务器模式,是对C/S的改进。客户端通过Web浏览器实现,只需安装一个浏览器(Browser),主要任务都是在服务器端实现。.NET访问SQL Server 2005B/S模式具有以下优势:(1)客户端免开发、免安装、免维护。B/S结构的“瘦”客户机,“胖”服务器机制,给系统维护和升级都带来极大便利。(2)跨平台的网络实时应用。采用Internet/Intranet技术,适用于广域网环境,支持更
25、多客户。(3)降低了系统的部署管理成本,具有良好的扩展性。(4)分布式应用。B/S模式的缺点:(1)B/S模式在逻辑上比C/S模式多一层,因而对于相同的任务,B/S不如C/S速度快。(2)交互性相对较差,个性化特点明显降低。(3)安全性有待提高。.NET访问SQL Server 200513.5.3 开发模式的选择l在实际系统结构设计中,一般采取二者相结合的模式,发挥各自的优势,弥补各自的不足。C/S结构强调专业性,对于控制复杂,而且涉及的信息极为重要和保密的模块,设计采用C/S模式架构;B/S模式更注重通用性,对于通用信息设置以及数据浏览查询一般采用B/S模式。这样既克服了C/S模式不易维护
26、、安装繁琐,只能在小范围的局域网工作的缺点,又避免了B/S模式易于受网络因素影响,不便在实时系统中应用的缺点,做到了取长补短。l在“高职院校教学管理系统”中,教师信息管理模块可以采用C/S结构,而学生信息、成绩信息、排课信息管理等模块可以采用B/S模式进行设计。.NET访问SQL Server 2005项目实训1实训题目实训题目 设计“销售合同管理系统”应用程序。2实训目的实训目的 (1)了解当前主流的数据库访问技术,能够根据项目对性 能、功能的需求选择合适的数据库访问方法。(2)熟悉ADO.NET数据库访问技术,掌握数据库操作对 象,并能熟练利用数据库操作对象进行数据库的连接、数据 查询、更新等命令的执行以及结果的处理和数据显示。3实训内容及操作步骤实训内容及操作步骤 (1)学习Visaul Studio 2005的使用。(2)使用SqlConnection对象连接CONTRACTDB数据库。(3)使用SqlDataAdapter、SqlDataSet对象查询员工信息,并将查询结果显示到界面上;通过该对象进行数据修改。.NET访问SQL Server 2005