1. 首页
  2. 文档大全

数据库应用程序设计

上传者:2****1 2022-06-08 08:19:09上传 PPT文件 104KB
数据库应用程序设计_第1页 数据库应用程序设计_第2页 数据库应用程序设计_第3页

《数据库应用程序设计》由会员分享,可在线阅读,更多相关《数据库应用程序设计(38页珍藏版)》请在文档大全上搜索。

1、第14章 数据库应用程序设计教学目标 本章介绍了如何使用C#访问关系数据库。讨论ADO.NET的结构以及如何使应ADO.NET访问关系数据库,通过本章的学习,读者应掌握C#的数据库编程,能够编写C#程序访问各种常见的数据库类型 。绝大多数软件系统都需要有数据库的支持,因此数据库编程也是每一个开发者应该掌握的。 教学重点lADO.NET概述l.NET数据提供者lDataSet数据集l使用数据库l数据绑定 14.1 ADO.NET概述概述 数据库的访问是所有编程语言中最重要的部分,C#提供了ADO.Net部件用于对数据库进行访问。 ADO.NET是美国微软公司最新推出.NET平台中的一种数据访问技

2、术,是专门为.NET Framework而设计的,是ADO的升级版本;ADO.NET集成了到.NET Framework中,可用于任何.NET语言,尤其是C#;ADO.NET包括所有的System.Data命名空间及其嵌套的命名空间 。ADO.NET是构建.NET数据库应用程序的基础。ADO.NET类库中提供了用于数据连接、处理数据操作的类。System.Data名称空间可以通过数据提供者(provider)与数据库通信,ADO.NET对象允许通过组件连接到数据库,在数据库中进行检索、编辑、删除和插入数据,并在程序中处理数据。1.ADO.NET支持已连接环境和非连接环境(即允许应用程序在与数据

3、库断开的情况下进行操作)的数据访问。 14.1.1 ADO.NET架构 ADO.NET架构的两个主要组件:lData Provider(数据提供者)lDataSet(数据集) 14.1.2 .NET Framework数据提供数据提供程序程序 1. .NET Framework有四种数据提供程序,用于访问不同类型的数据源。lSQL Server .NET Framework数据提供程序。lOLE DB .NET Framework数据提供程序。lODBC .NET Framework数据提供程序。lOracle .NET Framework数据提供程序。14.1.2 .NET Framewor

4、k数据提供数据提供程序程序 2. .NET Data Provider核心类核心类.NET Framework数据提供程序包括四个核心对象,用于实现对数据库的数据处理。Connection:建立与特定数据源的连接Command:用来执行对数据源进行各种操作的SQL命令DataReader:以只能向前的、只读的数据流方式接收Command对象的ExecuteReader方法返回的数据。DataAdapter:是DataSet和数据源之间交换数据的桥梁 若访问Access数据库,上述4个对象分别表示为:OleDbConnectionOleDbCommandOleDbDataReaderOleDbD

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

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

7、1 Connection对象对象 1.Connection对象常用属性有:lConnectionString属性:用来指定要连接的数据源。在ConnectionString属性中,需要使用很多参数。如:Data Source用来指明数据源;Initial Catalog用来指明数据库;Integrated Security用来指明集成安全等。lConnectionTimeout属性:返回结果为等待连接打开的时间(以秒为单位)。默认值为 15 秒。lDatabase属性:获取当前数据库或连接打开后要使用的数据库的名称。返回结果:当前数据库的名称或连接打开后要使用的数据库的名称。默认值为空字符串。

8、lDataSource属性:获取要连接的数据源实例的名称。 14.2.1 Connection对象对象 2. Connection对象常用方法对象常用方法 Connection对象最常用的方法有Open和Close方法。lOpen()方法:该方法用于打开由ConnectionString属性指定的数据源连接。lClose方法():该方法用于断开由ConnectionString属性指定的数据源连接。 14.2.1 Connection对象对象 3. Connection对象的创建对象的创建 创建一个SqlConnection对象的编程方法如下:String connectionString=D

9、ataSource=yangjianjunSQLExpress;Provide=SQLOLEDB.1;Initial Catalog=Northwind;Integrated Security=True;SqlConnection con = new SqlConnection();con.ConnectionString = connectionString;OleDbConnection对象的创建方法和SqlConnection对象的创建方法类似。例如:OleDbConnection con = new OleDbConnection ();也可以通过控件来创建也可以通过控件来创建Conn

10、ection对象对象 。14.2.2 Command对象对象 通过编程的方法(也可以通过控件来创建)创建一个Command对象:SqlCommand cmd = new SqlCommand ();或OleDbCommand cmd = new OleDbCommand();常用属性:lCommandText:获取或设置对数据源执行的SQL语句,默认为空串。lCommandTimeout:获取或设置在终止执行命令的尝试并生成错误之前的等待时间。lCommandType:获取或设置一个值,该值指示如何解释CommandText属性,默认为Text.lConnection:获取或设置Command

11、对象使用的Connection对象的名称,默认为null。14.2.2 Command对象对象常用方法:lExecuteNonQuery():该方法主要用于执行除Select查询以外(如Update、Insert、Delete)的SQL命令。返回值为该命令所影响的记录行数。lExecuteReader():对连接对象执行SQL查询语句,返回一个DataReader对象 。lExecuteScalar():对连接对象执行SQL语句,返回结果值。14.2.3 DataReader对象对象 DataReader对象用于对数据库的操作。在ADO.NET DataReader类中有两个子类,一个是Sql

12、DataReader类;另一个是OleDbDataReader类。 通过编程的方法创建一个DataReader对象:SqlDataReader reader = Command.ExecuteReader();或OleDbDataReader reader = Command.ExecuteReader(); 14.3 使用数据库 在C#代码中使用ADO.NET的第一步就是引用System.Data命名空间,该命名空间中含有所有的ADO.NET类。接着,需要根据数据源的类型不同,而引用相应的数据提供者。lSQL Server .NET数据提供者:SQL Server数据库,使用using指令引

13、用System.Data.SqlClient。lOracle .NET 数据提供者:Oracle数据库,System.Data.OracleClient;另外,Oracle本身也提供了一个.NET 数据提供者,Oracle.DataAccess.ClientlOLE DB .NET提供者: Microsoft Access,System.Data.OleDblODBC .NET数据提供者:如果数据源没有内置的或OLE DB提供者,则可以使用ODBC.NET数据提供者System.Data.Odbcl其他内置的.NET 数据提供者:如果数据库有专用的内置.NET 数据提供者,就可以使用它14.

14、3.1 使用DataReader完成数据库访问完成数据库访问 使用DataReader读取数据的过程如下:(1)连接数据源;(2)打开连接;(3)执行SQL查询命令。(4)使用DataReader读取并显示数据。(5)关闭DataReader和连接。示例:示例:Ex14-1、 Ex14-2(控件控件)、 WindowsApplication2:Ex14-4(代码代码)数据绑定数据绑定 数据绑定就是将一个控件的属性与一个数据源连接起来。大多数Windows窗体控件的属性都可以连接或绑定到一个数据源。一经绑定,数据源中值就会改变绑定的控件的属性,反之亦然。 Windows窗体控件支持两种类型的数据

15、绑定:简单绑定和复杂绑定。简单数据绑定允许你将将一个控件或窗体的属性绑定到数据源中的单个值。而复杂数据绑定专门用于将一个控件连接到一系列的值。简单数据绑定适合只显示一个值的控件,如Label 、Text等之类的控件。复杂数据绑定适合能显示多个值的控件,如:ListBox、CheckedListBox、ComboBox、和 DataGridView等。数据绑定数据绑定 在常用控件中,往往要使用数据绑定实现数据库应用程序的开发。实现数据绑定的一般步骤如下:l 无论是简单数据绑定,还是复杂数据绑定,要实现数据绑定的第一步就是就是要连接数据库,得到可以操作的DataSet。l 根据不同组件,采用不同的

16、数据绑定。 14.3.2 DataGridView控件控件 DataGridView控件使程序员可在自定义的网格中显示数据。 DataGridView控件主要属性控件主要属性lReadOnly:该值指示用户是否可以编辑 System.Windows.Forms.DataGridView 控件的单元格。lDataSource:获取或设置 System.Windows.Forms.DataGridView 所显示数据的数据源。lDataMember:获取或设置数据源中 System.Windows.Forms.DataGridView 显示其数据的列表或表的名称。lCurrentRow:获取包含当

17、前单元格的行。14.3.2 DataGridView控件控件 BindingSource类类是和是和DataGridView控件经常配合控件经常配合使用的一个类。使用的一个类。BindingSource类的主要属性如下:类的主要属性如下:lDataSource :获取或设置连接器绑定到的数据源。:获取或设置连接器绑定到的数据源。返回结果:作为数据源的返回结果:作为数据源的 System.Object。默认为。默认为null。lDataMember : 获取或设置连接器当前绑定到的数获取或设置连接器当前绑定到的数据源中的特定列表。返回结果:据源中的特定列表。返回结果: System.Window

18、s.Forms.BindingSource.DataSource 中的列表(或表)的名称。默认值为空字符串。中的列表(或表)的名称。默认值为空字符串。示例:示例:Ex14-3(操作步骤附后)(操作步骤附后)Ex14-3操作步骤:操作步骤:1.创建数据源:【数据】|【添加数据源】2.添加DataGridView控件,设置其数据源(如果直接选择表txb,则3、4不可省略);3.添加OleDbDataAdapter控件,生成相应的数据集;4.将BindingSource对象(默认名为testDataSetBindingSource)的DataMember属性设为txb;5.运行程序。14.3.3 D

19、ataAdapter对象对象 DataAdapter是ADO.NET新增加的对象。在ADO.NET DataAdapter类中有两个子类,一个是SqlDataAdapter类;另一个是OleDbDataAdapter类。 DataAdapter对象包含有SelectCommand、InsertCommand、UpdateCommand和DelectCommand四个属性,用来定义处理数据存储中数据的命令,并且每个命令都是对Command对象的一个引用,可以共享同一个数据源。 14.3.3 DataAdapter对象对象 DataAdapter对象常用的方法主要有:1.Fill():该方法用于执

20、行SelectCommand,用数据源的数据填充DataSet对象。2.GetData():新建一个数据集中的DataTable并填充它。3.Update():更新数据集中的某个DataTable。通过编程的方法创建一个DataAdapter对象:SqlDataAdapter dataAdapter = new SqlDataAdapter ();或OleDbDataAdapter dataAdapter = new OleDbDataAdapter (); 14.4 数据集对象 数据集对象位于System.Data命名空间中,用于定义ADO.NET的断开的、客户端的对象,包括DataSet、

21、DataTable、DataRow、DataColumn和DataRelation等 lDataSet是数据集对象中的首要对象,此对象表示一组相关表 lDataTable对象代表DataSet中的一个表 lDataTable对象的Rows和Columns分别是DataRow和DataColumn对象,可用于访问DataTable表中的行和列 lDataRelation对象代表通过共享列而发生关系的两个表之间的关系 14. 4 数据集对象 DataSet对象的创建可以通过工具栏中的控件实现;通过菜单“数据”|“添加新数据源”来实现;或者选择DataAdapter对象,单击右上角的黑三角(智能标记

22、),在下拉表中选择“生成数据集” 。 14. 4 数据集对象 填充填充DataSet对象:对象: DataSet对象是一个必须填充的容器,填充方法有多种:调用DataAdapter的Fill方法、手工填充、复制或合并其它DataSet的数据。我们这里介绍使用DataAdapter的Fill方法填充DataSet对象。使用数据集对象 DataSet是ADO.NET中的核心对象,所有复杂的操作都是使用它来完成的。DataSet包含一组DataTable对象,表示所操作的数据库表。每个DataTable对象又都有一些子对象:DataRow和DataColumn,表示数据库表中的行和列。通过这些对象可

23、以获取表、行和列中的所有元素。 l为应用程序添加数据源l添加绑定控件l将控件与数据源绑定的方法就是通过“属性”窗口,修改控件的“Data Source”属性14.5 修改数据库 修改数据库可以使用DataSet来完成,也可以使用编程的方法去完成。 14.5 修改数据库 1使用使用DataSet修改数据库修改数据库 对数据库的修改操作可以用相同的模式完成:(1)用数据库中的数据填充数据集DataSet。(2)修改存储在DataSet中的数据,例如,更新、插入和删除记录。(3)完成了所有的修改操作后,把DataSet中所作的修改更新到数据库中。14.5 修改数据库 2结构化查询语言结构化查询语言S

24、QL(Structured Query Language,结构化查询语言)是操作所有关系型数据库的标准语言。其常用主要命令如下。读取表格内容:SELECT * FROM tableName向表格插入一条记录:INSERT INTO table1 VALUES(字段值1,字段值2,)查询满足特定条件的记录:SELECT * FROM tableName WHERE条件表达式从表格删除记录:DELETE FROM tableName WHERE 条件表达式修改表中的记录:UPDATE tableName SET 字段名=字段值 WHERE 条件表达式14.5 修改数据库 3增加记录增加记录增加数据

25、记录可以通过DataSet控件实现,首先创建一个新行,使用NewRow方法或Add方法将新数据行添加到数据表的DataRow集合中,调用DataAdapter的Update方法实现数据库的更新,并调用DataSet的AcceptChanges方法接受更改。如:DataTable mytable=dataSet1.Tablestxb ;object o=2,李信,67691567,13523644158,450008,;mytable.Rows.Add(o);oleDbDataAdapter1.Update(dataSet1);dataSet1.AcceptChanges();14.5 修改数据

26、库 4删除记录删除记录删除表中的元素可以从DataTable对象中删除DataRow对象,使用Delete方法。如:DataTable mytable=dataSet1.Tablestxb;mytable.Rows1.Delete();oleDbDataAdapter1.Update(dataSet1);dataSet1.AcceptChanges();14.5 修改数据库 5更新记录更新记录 应用程序中的数据更新应及时反映在数据库的操作上,如通过DataSet修改了相应的数据,则要把该修改表现在数据库中。因为DataSet和DataAdapter相互传送数据,则对数据的更改通过DataAdapter的Update()方法实现。 示例:示例:Ex14-8谢谢!


文档来源:https://www.renrendoc.com/paper/212547943.html

文档标签:

下载地址