数据库应用程序设计_第1页
数据库应用程序设计_第2页
数据库应用程序设计_第3页
数据库应用程序设计_第4页
数据库应用程序设计_第5页
已阅读5页,还剩33页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第14章数据库应用程序设计教学目标本章介绍了如何使用C#访问关系数据库。讨论ADO.NET的结构以及如何使应ADO.NET访问关系数据库,通过本章的学习,读者应掌握C#的数据库编程,能够编写C#程序访问各种常见的数据库类型。绝大多数软件系统都需要有数据库的支持,因此数据库编程也是每一个开发者应该掌握的。教学重点ADO.NET概述.NET数据提供者DataSet数据集使用数据库数据绑定

14.1ADO.NET概述

数据库的访问是所有编程语言中最重要的部分,C#提供了ADO.Net部件用于对数据库进行访问。ADO.NET是美国微软公司最新推出.NET平台中的一种数据访问技术,是专门为.NETFramework而设计的,是ADO的升级版本;ADO.NET集成了到.NETFramework中,可用于任何.NET语言,尤其是C#;ADO.NET包括所有的System.Data命名空间及其嵌套的命名空间。ADO.NET是构建.NET数据库应用程序的基础。ADO.NET类库中提供了用于数据连接、处理数据操作的类。System.Data名称空间可以通过数据提供者(provider)与数据库通信,ADO.NET对象允许通过组件连接到数据库,在数据库中进行检索、编辑、删除和插入数据,并在程序中处理数据。ADO.NET支持已连接环境和非连接环境(即允许应用程序在与数据库断开的情况下进行操作)的数据访问。14.1.1ADO.NET架构ADO.NET架构的两个主要组件:DataProvider(数据提供者)DataSet(数据集)14.1.2.NETFramework数据提供程序

1..NETFramework有四种数据提供程序,用于访问不同类型的数据源。SQLServer.NETFramework数据提供程序。OLEDB.NETFramework数据提供程序。ODBC.NETFramework数据提供程序。Oracle.NETFramework数据提供程序。14.1.2.NETFramework数据提供程序

2..NETDataProvider核心类.NETFramework数据提供程序包括四个核心对象,用于实现对数据库的数据处理。Connection:建立与特定数据源的连接Command:用来执行对数据源进行各种操作的SQL命令DataReader:以只能向前的、只读的数据流方式接收Command对象的ExecuteReader方法返回的数据。DataAdapter:是DataSet和数据源之间交换数据的桥梁

若访问Access数据库,上述4个对象分别表示为:OleDbConnectionOleDbCommandOleDbDataReaderOleDbDataAdapter

14.1.3DataSet数据集

ADO.NET的一个比较突出的特点是支持离线访问,即在非连接环境下对数据进行处理,DataSet是支持离线访问的关键对象,它将数据存储在缓存中。DataSet对象不关心数据源的类型,它将信息以表的形式存放。DataSet对象是非连接存储和处理关系的基础。14.2ADO.NET对象ADO.NET类之间的关系数据提供者对象提供者对象就是指在每一个.NET数据提供者中定义的对象。

连接对象命令对象CommandBuilder对象DataReader对象DataAdapter对象14.2.1Connection对象

在C#.NET中,通过Connection对象实现数据连接,并且在使用过程中,根据不同的数据库的类型使用不同的Connection控件。在ADO.NETConnection类中有两个子类,一个是SqlConnection;另一个是OleDbConnection。

14.2.1Connection对象

在C#.NET中,通过Connection对象实现数据连接,并且在使用过程中,根据不同的数据库的类型使用不同的Connection控件。在ADO.NETConnection类中有两个子类,一个是SqlConnection;另一个是OleDbConnection。

14.2.1Connection对象

1.Connection对象常用属性有:ConnectionString属性:用来指定要连接的数据源。在ConnectionString属性中,需要使用很多参数。如:DataSource用来指明数据源;InitialCatalog用来指明数据库;IntegratedSecurity用来指明集成安全等。ConnectionTimeout属性:返回结果为等待连接打开的时间(以秒为单位)。默认值为15秒。Database属性:获取当前数据库或连接打开后要使用的数据库的名称。返回结果:当前数据库的名称或连接打开后要使用的数据库的名称。默认值为空字符串。DataSource属性:获取要连接的数据源实例的名称。14.2.1Connection对象

2.Connection对象常用方法Connection对象最常用的方法有Open和Close方法。Open()方法:该方法用于打开由ConnectionString属性指定的数据源连接。Close方法():该方法用于断开由ConnectionString属性指定的数据源连接。14.2.1Connection对象

3.Connection对象的创建

创建一个SqlConnection对象的编程方法如下:StringconnectionString="DataSource=yangjianjun\SQLExpress;Provide=SQLOLEDB.1;InitialCatalog=Northwind;IntegratedSecurity=True";SqlConnectioncon=newSqlConnection();con.ConnectionString=connectionString;OleDbConnection对象的创建方法和SqlConnection对象的创建方法类似。例如:OleDbConnectioncon=newOleDbConnection();也可以通过控件来创建Connection对象。14.2.2Command对象

通过编程的方法(也可以通过控件来创建)创建一个Command对象:SqlCommandcmd=newSqlCommand();或OleDbCommandcmd=newOleDbCommand();常用属性:CommandText:获取或设置对数据源执行的SQL语句,默认为空串。CommandTimeout:获取或设置在终止执行命令的尝试并生成错误之前的等待时间。CommandType:获取或设置一个值,该值指示如何解释CommandText属性,默认为Text.Connection:获取或设置Command对象使用的Connection对象的名称,默认为null。14.2.2Command对象常用方法:ExecuteNonQuery():该方法主要用于执行除Select查询以外(如Update、Insert、Delete)的SQL命令。返回值为该命令所影响的记录行数。ExecuteReader():对连接对象执行SQL查询语句,返回一个DataReader对象。ExecuteScalar():对连接对象执行SQL语句,返回结果值。14.2.3DataReader对象

DataReader对象用于对数据库的操作。在ADO.NETDataReader类中有两个子类,一个是SqlDataReader类;另一个是OleDbDataReader类。通过编程的方法创建一个DataReader对象:SqlDataReaderreader=Command.ExecuteReader();或OleDbDataReaderreader=Command.ExecuteReader();

14.3使用数据库在C#代码中使用ADO.NET的第一步就是引用System.Data命名空间,该命名空间中含有所有的ADO.NET类。接着,需要根据数据源的类型不同,而引用相应的数据提供者。SQLServer.NET数据提供者:SQLServer数据库,使用using指令引用System.Data.SqlClient。Oracle.NET数据提供者:Oracle数据库,System.Data.OracleClient;另外,Oracle本身也提供了一个.NET数据提供者,Oracle.DataAccess.ClientOLEDB.NET提供者:MicrosoftAccess,System.Data.OleDbODBC.NET数据提供者:如果数据源没有内置的或OLEDB提供者,则可以使用ODBC.NET数据提供者System.Data.Odbc其他内置的.NET数据提供者:如果数据库有专用的内置.NET数据提供者,就可以使用它14.3.1使用DataReader

完成数据库访问

使用DataReader读取数据的过程如下:(1)连接数据源;(2)打开连接;(3)执行SQL查询命令。(4)使用DataReader读取并显示数据。(5)关闭DataReader和连接。示例:Ex14-1、Ex14-2(控件)、WindowsApplication2:Ex14-4(代码)数据绑定

数据绑定就是将一个控件的属性与一个数据源连接起来。大多数Windows窗体控件的属性都可以连接或绑定到一个数据源。一经绑定,数据源中值就会改变绑定的控件的属性,反之亦然。Windows窗体控件支持两种类型的数据绑定:简单绑定和复杂绑定。简单数据绑定允许你将将一个控件或窗体的属性绑定到数据源中的单个值。而复杂数据绑定专门用于将一个控件连接到一系列的值。简单数据绑定适合只显示一个值的控件,如Label、Text等之类的控件。复杂数据绑定适合能显示多个值的控件,如:ListBox、CheckedListBox、ComboBox、和DataGridView等。数据绑定

在常用控件中,往往要使用数据绑定实现数据库应用程序的开发。实现数据绑定的一般步骤如下:无论是简单数据绑定,还是复杂数据绑定,要实现数据绑定的第一步就是就是要连接数据库,得到可以操作的DataSet。根据不同组件,采用不同的数据绑定。14.3.2DataGridView控件

DataGridView控件使程序员可在自定义的网格中显示数据。

DataGridView控件主要属性ReadOnly:该值指示用户是否可以编辑System.Windows.Forms.DataGridView控件的单元格。DataSource:获取或设置System.Windows.Forms.DataGridView所显示数据的数据源。DataMember:获取或设置数据源中System.Windows.Forms.DataGridView显示其数据的列表或表的名称。CurrentRow:获取包含当前单元格的行。14.3.2DataGridView控件

BindingSource类是和DataGridView控件经常配合使用的一个类。BindingSource类的主要属性如下:DataSource:获取或设置连接器绑定到的数据源。返回结果:作为数据源的System.Object。默认为null。DataMember:获取或设置连接器当前绑定到的数据源中的特定列表。返回结果:System.Windows.Forms.BindingSource.DataSource中的列表(或表)的名称。默认值为空字符串。示例:Ex14-3(操作步骤附后)Ex14-3操作步骤:1.创建数据源:【数据】|【添加数据源】…2.添加DataGridView控件,设置其数据源(如果直接选择表txb,则3、4不可省略);3.添加OleDbDataAdapter控件,生成相应的数据集;4.将BindingSource对象(默认名为testDataSetBindingSource)的DataMember属性设为txb;5.运行程序。14.3.3DataAdapter对象

DataAdapter是ADO.NET新增加的对象。在ADO.NETDataAdapter类中有两个子类,一个是SqlDataAdapter类;另一个是OleDbDataAdapter类。DataAdapter对象包含有SelectCommand、InsertCommand、UpdateCommand和DelectCommand四个属性,用来定义处理数据存储中数据的命令,并且每个命令都是对Command对象的一个引用,可以共享同一个数据源。14.3.3DataAdapter对象

DataAdapter对象常用的方法主要有:1.Fill():该方法用于执行SelectCommand,用数据源的数据填充DataSet对象。2.GetData():新建一个数据集中的DataTable并填充它。3.Update():更新数据集中的某个DataTable。通过编程的方法创建一个DataAdapter对象:SqlDataAdapterdataAdapter=newSqlDataAdapter();或OleDbDataAdapterdataAdapter=newOleDbDataAdapter();14.4数据集对象数据集对象位于System.Data命名空间中,用于定义ADO.NET的断开的、客户端的对象,包括DataSet、DataTable、DataRow、DataColumn和DataRelation等DataSet是数据集对象中的首要对象,此对象表示一组相关表DataTable对象代表DataSet中的一个表DataTable对象的Rows和Columns分别是DataRow和DataColumn对象,可用于访问DataTable表中的行和列DataRelation对象代表通过共享列而发生关系的两个表之间的关系14.4数据集对象

DataSet对象的创建可以通过工具栏中的控件实现;通过菜单“数据”|“添加新数据源”来实现;或者选择DataAdapter对象,单击右上角的黑三角(智能标记),在下拉表中选择“生成数据集…”。14.4数据集对象填充DataSet对象:DataSet对象是一个必须填充的容器,填充方法有多种:调用DataAdapter的Fill方法、手工填充、复制或合并其它DataSet的数据。我们这里介绍使用DataAdapter的Fill方法填充DataSet对象。使用数据集对象DataSet是ADO.NET中的核心对象,所有复杂的操作都是使用它来完成的。DataSet包含一组DataTable对象,表示所操作的数据库表。每个DataTable对象又都有一些子对象:DataRow和DataColumn,表示数据库表中的行和列。通过这些对象可以获取表、行和列中的所有元素。为应用程序添加数据源添加绑定控件将控件与数据源绑定的方法就是通过“属性”窗口,修改控件的“DataSource”属性14.5修改数据库修改数据库可以使用DataSet来完成,也可以使用编程的方法去完成。14.5修改数据库

1.使用DataSet修改数据库对数据库的修改操作可以用相同的模式完成:(1)用数据库中的数据填充数据集DataSet。(2)修改存储在DataSet中的数据,例如,更新、插入和删除记录。(3)完成了所有的修改操作后,把DataSet中所作的修改更新到数据库中。14.5修改数据库

2.结构化查询语言SQL(StructuredQueryLanguage,结构化查询语言)是操作所有关系型数据库的标准语言。其常用主要命令如下。读取表格内容:SELECT*FROMtableName向表格插入一条记录:INSERTINTOtable1VALUES(字段值1,字段值2,…)查询满足特定条件的记录:SELECT*FROMtableNameW

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论