1. 首页
  2. 文档大全

第10章 数据库应用

上传者:7****0 2022-06-04 15:09:59上传 PPT文件 266KB
第10章 数据库应用_第1页 第10章 数据库应用_第2页 第10章 数据库应用_第3页

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

1、第10章 数据库应用学习内容与要点使用ADO.NET对象 使用ADO.NET控件数据绑定和数据绑定控件10.1 概述ADO.NET统一了数据容器类编程接口,无论编写何种应用程序(Windows窗体、Web窗体、Web服务)都可以通过同一组类来处理数据。无论后端数据源是SQL Server数据库、Oracle数据库、其它数据库、XML文件,还是一个文本文件,都使用一样的方式来处理它们。 ADO.NET包含两大核心控件,它们分别是.NET Framework数据提供程序和DataSet。.NET Framework数据提供程序用于连接到数据库、执行数据提供程序用于连接到数据库、执行命令和检索结果。

2、命令和检索结果。.NET Framework 提供了四个提供了四个 .NET Framework 数据提供数据提供程序:程序:SQL Server .NET Framework 数据提供程序数据提供程序OLE DB .NET Framework 数据提供程序数据提供程序ODBC .NET Framework 数据提供程序数据提供程序Oracle .NET Framework 数据提供程序数据提供程序.NET 数据提供程序提供四个核心对象数据提供程序提供四个核心对象Connection对象用于与特定的数据源建立连接对象用于与特定的数据源建立连接Command对象用于对数据源执行命令对象用于对数据

3、源执行命令DataReader对象用于从数据源中读取只向前的只读数据流,它是对象用于从数据源中读取只向前的只读数据流,它是一个简易的数据集一个简易的数据集DataAdapter对象用于用数据源的数据填充对象用于用数据源的数据填充 DataSet数据集并解析数据集并解析更新数据集。更新数据集。 DataSet是一个功能丰富、较复杂的数据集,它是支持 ADO.NET的断开式、分布式数据方案的核心对象。DataSet 表示包括相关表、约束和表间关系在内的整个数据集。 10.2 ADO.NET对象10.2.1 Connection对象对象用于连接数据库。用于连接数据库。 1.Connection对象的

4、主要属性是ConnectionString,用于设置连接字符串。对于不同的Connection对象,其连接字符串也有所不同。 (1)SQL Server使用SqlConnection对象。其典型的连接字符串为:Integrated Security=SSPI;database=northwind;server=serv(2)OLE DB使用使用OleDbConnection对象。对象。 连接字符串:Provider=MSDAORA; Data Source=ORACLE8i7;Persist Security Info=False;Integrated Security=yesProvider

5、=Microsoft.Jet.OLEDB.4.0; Data Source=c:binLocalAccess40.mdbProvider=SQLOLEDB;Data Source=MySQLServer;Integrated Security=SSPI“(3)Oracle使用OracleConnection对象。连接字符串:Data Source=Oracle8i;Integrated Security=yes(4) ODBC 使用OdbcConnection对象 。连接字符串:Driver=SQL Server;Server=MyServer;Trusted_Connection=yes;D

6、atabase=Northwind;Driver=Microsoft ODBC for Oracle;Server=ORACLE8i7;Persist Security Info=False;Trusted_Connection=yesDriver=Microsoft Access Driver (*.mdb);DBQ=c:binnwind.mdbDriver=Microsoft Excel Driver (*.xls);DBQ=c:binbook1.xlsDriver=Microsoft Text Driver (*.txt; *.csv);DBQ=c:binDSN=dsnname例例 使用

7、连接使用连接 连接到Microsoft Access的“地址簿”数据库。 using System;using System.Data.OleDb;class TestDatabasestatic void Main(string args)trystring myConStr = Provider=Microsoft.Jet.OLEDB.4.0; ;myConStr += Data Source= addrbook.mdb; ; OleDbConnection myCon = new OleDbConnection(myConStr);myCon.Open();Console.WriteLi

8、ne(Success! + myCon.State.ToString();myCon.Close(); catch(OleDbException oe) Console.WriteLine(oe.Message); 10.2.2 Command对象对象Command对象用于完成对数据源的查询、插入、删除、更新等操作。可以使用SQL语句,存储过程完成这些操作。 使用存储过程:CommandType属性设为 StoredProcedure,CommandText属性设为存储过程的名字。 使用SQL语句:把CommandType属性设为 Text,CommandText属性设为SQL语句。 直接访问

9、整个数据表:把CommandType属性设为TableDirect,把CommandText属性设为数据表名称 Command 对象的主要方法对象的主要方法使用 ExecuteReader方法返回 DataReader 对象使用 ExecuteScalar方法只返回结果集中第一行的第一列,常用于SQL语句的聚合函数。 使用 ExecuteNonQuery方法执行不返回结果的命令,常用于记录的插入、删除、更新等操作例例 在Microsoft SQL Server Northwind数据库中,创建存储过程EmployeeName,并用Command对象执行该存储过程(1)创建存储过程Employe

10、eName,它完成检索employees数据表中城市为City的员工姓名,其中City是存储过程的一个参数。 CREATE PROCEDURE EmployeeName City nvarchar(15) ,Count int OUTPUTAS SELECT firstname, lastname FROM employees WHERE city=CitySELECT Count = rowcountGO string Str = Persist Security Info=False;Initial Catalog=Northwind; ;Str += Data Source=localh

11、ost;Integrated Security=SSPI;SqlConnection Con = new SqlConnection(Str);SqlCommand Com = new SqlCommand();Com.Connection=Con;Com.CommandType = CommandType.StoredProcedure;Com.CommandText = EmployeeName; Com.Parameters.Add(City,SqlDbType.NVarChar,15);Com.ParametersCity.Value=London; Com.Parameters.Ad

12、d(Count,SqlDbType.Int); Com.ParametersCount.Direction = ParameterDirection.Output;Con.Open();SqlDataReader rd = Com.ExecuteReader();Console.WriteLine(0t 1, rd.GetName(0), rd.GetName(1);while (rd.Read()Console.WriteLine(0t,t 1, rd.GetString(0) , rd.GetString(1);rd.NextResult();Console.WriteLine(The c

13、ount is 0,Com.ParametersCount.Value); rd.Close();Con.Close();10.2.3 DataReader对象对象DataReader 对象是一个简单的数据集,用于从数据源中检索只读、只向前数据流。 它通过Command对象的ExecuteReader方法创建要想获得DataReader对象中的数据,必须组合使用DataReader 对象的 Read 方法和相应的Get方法。Read方法用于移动记录指针到下一行数据。GetDateTime、GetDouble、GetInt32等Get方法,可以获得当前行的每一列。 例 用DataReader对象

14、检索Microsoft Access的“地址簿”数据库的“家庭成员”数据表OleDbConnection myCon =null; OleDbDataReader myReader =null;trystring myConStr = Provider=Microsoft.Jet.OLEDB.4.0; ;myConStr += Data Source= addrbook.mdb; ;myCon = new OleDbConnection(myConStr);myCon.Open();string myComStr = Select 成员编号,姓氏,名字 from 家庭成员 ;OleDbComm

15、and myCom = new OleDbCommand(myComStr, myCon);myReader = myCom.ExecuteReader(); while (myReader.Read()Console.WriteLine(myReader.GetInt32(0) + , + myReader.GetString(1) + myReader.GetString(2);finally myReader.Close();myCon.Close(); 10.2.4 DataAdapter对象对象它是DataSet对象和数据源之间的一个桥梁,用于从数据源中检索数据、填充 DataSet

16、对象中的表及对DataSet对象做出的更改提交回数据源 它使用Command对象从数据源中检索数据并将更改提交回数据源,Command对象体现在DataAdapter的SelectCommand、InsertCommand、UpdateCommand 和 DeleteCommand 属性上。 它的 Fill 方法用于在DataSet中添加或刷新行以匹配数据源中的行。 例例 使用使用DataAdapter对象对象使用使用Microsoft SQL Server Northwind 数据库的数据库的 employees数据表来填充数据表来填充 DataSet。然后删除该表中的一条记录,并刷新。然后

17、删除该表中的一条记录,并刷新DataSet和数据源:和数据源:string Str = Persist Security Info=False;Initial Catalog=Northwind; ;Str += Data Source=localhost;Integrated Security=SSPI;SqlConnection Con = new SqlConnection(Str);string comStr = SELECT lastname, firstname FROM employees ; ;SqlCommand Com = new SqlCommand(comStr, Co

18、n);SqlDataAdapter myDA = new SqlDataAdapter(); myDA.SelectCommand=Com;Con.Open();DataSet myDS = new DataSet();myDA.Fill(myDS, Employees); Com.CommandText = DELETE FROM employees WHERE employeeID = 9;myDA.DeleteCommand = Com;myDA.Fill(myDS, Employees);Con.Close();10.2.5 DataSet对象 1. 数据集 (1)表示相关表、约束和表

19、间关系在内的数据集合(2)相关对象:DataSet、DataTable、DataColumn、Constraint、DataRelation、DataRow。DataSet 类包含数据表的集合Tables和DataRelation 对象的集合Relations。DataTable类包含表行的集合Rows、数据列的集合Columns和数据关系的集合ChildRelations 和ParentRelations。 2. 填充数据集填充数据集(1)填充数据集的方法:)填充数据集的方法:调用调用DataAdapter对象的对象的Fill方法。方法。通过创建通过创建 DataRow 对象并将它们添加到表

20、的对象并将它们添加到表的Rows集集合,手动填充数据集中的表。合,手动填充数据集中的表。 将将XML文档或流读入数据集。文档或流读入数据集。合并(复制)另一个数据集的内容。合并(复制)另一个数据集的内容。例例 调用调用DataAdapter对象的对象的Fill方法填充数据集方法填充数据集string comStr = SELECT lastname, firstname FROM employees ; ;SqlCommand Com = new SqlCommand(comStr, Con);SqlDataAdapter myDA = new SqlDataAdapter();myDA.Se

21、lectCommand=Com;Con.Open();DataSet myDS = new DataSet();myDA.Fill(myDS, Employees); 3访问数据集访问数据集直接使用对象访问数据集中的数据。DataSet对象的数据表集合Tables,DataTable对象的数据行集合Rows、数据列集合Columns。 例如,访问Employees数据表的第四行数据的lastname列的值myDS.Tables“Employees”.Rows3“LastName”;4更新数据集更新数据集(1)添加数据)添加数据DataRow myDR = myDS.Tables“Employe

22、es.NewRow();myDRfirstname = wu;myDS.Tables“Employees.Rows.Add(myDR);(2)删除数据)删除数据调用数据行的调用数据行的Delete方法,例如:方法,例如:myDS.Tables“Employees.Rows10.Delete();(3)修改数据)修改数据myDS.Tables“Employees”.Rows3“LastName” = “jing”;(4)更新数据源)更新数据源从数据集更新数据源。使用从数据集更新数据源。使用DataAdapter对象的对象的Update方法完成。方法完成。 10.2.6 数据控件及数据绑定控件数据

23、控件及数据绑定控件1.数据控件数据控件 BindingSource控件、控件、BindingNavigator、DataTable、DataTableAdapter、Query和和DataSet控件。控件。 2.数据绑定数据绑定 就是使控件与数据源的数据捆绑在一起,以提供便利的就是使控件与数据源的数据捆绑在一起,以提供便利的数据访问数据访问。 3.数据源控件数据源控件用于简化窗体中控件到数据的绑定。用于简化窗体中控件到数据的绑定。 BindingSource控件就是一个数据源控件,它用于封装窗体的数据源。控件就是一个数据源控件,它用于封装窗体的数据源。通过将它附加到数据源然后将窗体中的控件绑定

24、到通过将它附加到数据源然后将窗体中的控件绑定到 BindingSource 控件来实现数据绑定。控件来实现数据绑定。 例例 使用数据控件检索使用数据控件检索SQL Server Northwind数据数据库的库的Employees数据表数据表(1)创建数据连接)创建数据连接服务器资源管理器中,服务器资源管理器中,右击右击“数据连接数据连接”,选择,选择【添加连接】。【添加连接】。在在“服务器名服务器名”下拉列表中下拉列表中,选择要连接的,选择要连接的SQL Server服务器;在服务器;在“选择选择或输入一个数据库名或输入一个数据库名”下拉下拉列表中,选择一个数据库。列表中,选择一个数据库。(

25、2)添加数据源)添加数据源选择选择“数据数据”菜单的菜单的“添加新数据源添加新数据源”菜单项。出现菜单项。出现“数据源配置向导数据源配置向导”对话框。对话框。 在“应用程序从哪里获取数据”中,选择数据库。点击下一步按钮。出现“数据配置向导”的第二步对话框。从“应用程序连接数据库应使用哪个数据连接”下拉列表框中,选择刚建立的数据连接。点击下一步按钮。出现“数据配置向导”的第三个对话框。 选择“是,将连接保存为”,在文本框中输入连接字符串的名字。点击下一步按钮。出现“数据源配置向导”第四步对话框。 展开“表”树;展开“Employees”表;选择相应字段;单击“完成”按钮。在数据源窗口中,就创建一

26、个新的数据集。 (3)添加数据绑定控件)添加数据绑定控件 为了显示数据集中的数据,向窗体添加一个为了显示数据集中的数据,向窗体添加一个DataGridView控件。单击控件。单击“智能三角智能三角”,从,从“选择数据源选择数据源”下拉列表框中,下拉列表框中,选选择择Employees。 这时,集成开发环境会为我们自动生成一个数据源控件。这时,集成开发环境会为我们自动生成一个数据源控件。可以单击数据源控件的智能三角,选择可以单击数据源控件的智能三角,选择“添加查询添加查询”,添加,添加新新的查询。也可以选择的查询。也可以选择“预览数据预览数据”,预览数据源控件中的数,预览数据源控件中的数据据4.

27、数据绑定控件数据绑定控件(1)简单绑定控件)简单绑定控件 简单数据绑定指将一个控件绑定到单个数据元素。支持简单数据绑定指将一个控件绑定到单个数据元素。支持简单绑定的控件有简单绑定的控件有TextBox 、Label 等只显示单个值的控件。等只显示单个值的控件。绑定步骤:绑定步骤: 在该控件的属性窗口中,展开在该控件的属性窗口中,展开DataBindings属性。属性。 单击要绑定属性的下拉箭头,从下拉列表中展开要绑定的单击要绑定属性的下拉箭头,从下拉列表中展开要绑定的数据源,从中选择某个数据元素(字段)。数据源,从中选择某个数据元素(字段)。(2)复杂绑定控件)复杂绑定控件DataGrid控件

28、控件复杂数据绑定指将一个控件绑定到多个数据元素。复杂数据绑定指将一个控件绑定到多个数据元素。DataGrid控件以网格的形式显示数据,同时还能完成数控件以网格的形式显示数据,同时还能完成数据的添加、删除和更改操作。据的添加、删除和更改操作。绑定的方法有两种:绑定的方法有两种:在设计时,使用在设计时,使用DataSource属性和属性和DataMember属性属性在运行时,使用在运行时,使用SetDataBinding方法绑定到数据源方法绑定到数据源DataSet myData = new DataSet();OleDbDataAdapter myAdapter = new OleDbDataAdapter(myCom);myAdapter.Fill(myData,家庭成员家庭成员);/第一个参数是数据集(相当于第一个参数是数据集(相当于DataSource),第二个参),第二个参数是数据集中的数据表(相当于数是数据集中的数据表(相当于DataMember属性)属性)dataGrid1.SetDataBinding(myData , 家庭成员家庭成员); (3)DataGridView控件控件


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

文档标签:

下载地址