第8章ADONET数据访问技术课件.ppt
《第8章ADONET数据访问技术课件.ppt》由会员分享,可在线阅读,更多相关《第8章ADONET数据访问技术课件.ppt(76页珍藏版)》请在三一办公上搜索。
1、第8章 ADO.NET数据访问技术,第8章 ADO.NET数据访问技术,内容,ADO.NET基础 连接模式数据库访问 断开模式数据库访问,内容ADO.NET基础,8.1 ADO.NET基础,ADO.NET模型ADO.NET的组件 ADO.NET的数据访问模式,8.1 ADO.NET基础ADO.NET模型,8.1.1 ADO.NET模型,8.1.1 ADO.NET模型,8.1.2 ADO.NET的组件,8.1.2 ADO.NET的组件,数据集DataSet位于System.Data命名空间下,用于在内存中暂存数据,可以把它看成是内存中的小型数据库。DataSet包含一个或多个数据表(DataTa
2、ble),表数据可来自数据库、文件或XML数据。DataSet一旦读取到数据库中的数据后,就在内存中建立数据库的副本,在此之后的所有操作都是在内存中的DataSet中完成,直到执行更新命令为止。,数据集DataSet位于System.Data命名空间下,用,在ADO.NET中,连接数据源有4种数据提供程序。如果要在应用程序中使用任何一种数据提供程序,必须在后台代码中引用对应的命名空间,类的名称也随之变化。,在ADO.NET中,连接数据源有4种数据提供程序。如果要在应,8.1.3 ADO.NET的数据访问模式,8.1.3 ADO.NET的数据访问模式,8.2 连接模式数据库访问,使用SqlCon
3、nection对象连接数据库 使用SqlCommand对象执行数据库命令 使用SqlDataReader读取数据 为SqlCommand传递参数 使用SqlCommand执行存储过程使用事务处理,8.2 连接模式数据库访问使用SqlConnection对,连接模式访问数据库的开发流程有以下几个步骤:创建SqlConnection对象与数据库建立连接;创建SqlCommand对象对数据库执行SQL命令或存储过程,包括增、删、改及查询数据库等命令;如果查询数据库的数据,则创建SqlDataReader对象读取SqlCommand命令查询到的结果集,并将查到的结果集绑定到控件上。,连接模式访问数据库
4、的开发流程有以下几个步骤:,8.2.1 使用SqlConnection对象连接数据库,1示例数据库的创建 创建一个示例数据库Student,该数据库包含StuInfo、Major和UserInfo三张表,数据库表结构关系图。,【例8-1】演示如何在Visual Studio 2008开发环境下创建数据库。,参见示例第08章SqlServerDemoStudent.mdf,8.2.1 使用SqlConnection对象连接数据库1,2创建数据库连接,操作数据库的第一步是建立与数据库的连接,因此首先要创建SqlConnection对象。要创建SqlConnection对象必须先了解SqlConne
5、ction对象的常用属性和方法。,SqlConnection对象的常用属性,2创建数据库连接操作数据库的第一步是建立与数据库的连接,因,ConnectionString属性通常包含以下参数,各参数间用“;”分隔。Provider:用于设置数据源的OLE DB驱动程序。如:Access为“Microsoft.Jet.OLEDB.4.0”;SQL Server 6.5或之前版本为“SQLOLEDB”。Data Source:设置数据源的实际路径。Password:设置登录数据库所使用的密码。User ID:设置登录数据库时所使用的帐号。例如,连接Access数据库的的连接参数为:Provider=
6、Microsoft.Jet.OLEDB.4.0;Data Source=D:abc.mdb,ConnectionString属性通常包含以下参数,各参数,对于SQL7.0或更高版本的SQL数据库,ConnectionString属性包含的主要参数有:,Data Source或Server:设置需连接的数据库服务器名称。Initial Catalog或Database:设置连接的数据库名称。AttachDBFilename:数据库的路径和文件名。User ID 或 uid:登录SQL Server数据库的账户。Password 或 pwd:登录SQL Server数据库的密码。Integrate
7、d Security:是否使用Windows集成身份验证,值有三种:true、false和SSPI,true和SSPI表示使用Windows集成身份验证。Connection Timeout:设置SqlConnection对象连接SQL数据库服务器的超时时间,单位为秒,若在所设置的时间内无法连接数据库,则返回失败信息。默认为15秒。,对于SQL7.0或更高版本的SQL数据库,Connectio,连接数据库时,有两种验证模式:混合验证模式Windows集成验证模式使用混合验证模式的连接参数为:Data Source=localhost;Initial Catalog=northwind;User
8、 Id=sa;pwd=123其中,Data Source=localhost表示连接本机SQL数据库的默认服务器。使用Windows集成验证模式的连接参数为:Data Source=localhost;Initial Catalog=northwind;Integrated Security=true混合验证模式必须在连接字符串中以明文形式保存用户名和密码,因此安全性较差。Windows集成验证模式不发送用户名和密码;仅发送用户通过身份验证的信息。从安全角度考虑,建议使用Windows集成验证模式。,连接数据库时,有两种验证模式:,在本书的示例中,数据库都是放在网站的App_Data目录下。如
9、例【8-1】中创建的Student数据库的连接参数应设置为:Data Source=.SQLEXPRESS;AttachDbFilename=|DataDirectory|Student.mdf;Integrated Security=True;User Instance=True其中,Data Source=.SQLEXPRESS表示SQL Server2005的SQLEXPRESS数据库服务器,AttachDbFilename表示数据库的路径和文件名,|DataDirectory|表示网站默认数据库路径App_Data。,在本书的示例中,数据库都是放在网站的App_Data目录下。,Sql
10、Connection对象的常用方法,SqlConnection对象的常用方法方 法说 明,在创建数据库连接对象时,需要指定连接字符串。通常有以下2种方法获取连接字符串:创建连接对象,并在应用程序的中硬编码连接字符串。SqlConnection 对象名称=new SqlConnection(连接字符串);或SqlConnection 对象名称=new SqlConnection();对象名称.ConnectionString=连接字符串;,在创建数据库连接对象时,需要指定连接字符串。通常有以下2种方,把连接字符串放在应用程序的web.config文件中,再引用web.config文件。在web.
11、config配置文件的节中添加如下的代码。,把连接字符串放在应用程序的web.config文件中,再引用,web.config文件中有了连接字符串后,就可以从web.config中读取连接字符串。需要使用System.Configuration.ConfigurationManager类读取连接字符串。代码如下:,string strCnn=ConfigurationManager.ConnectionStringsStudentCnnString.ConnectionString;/读取连接字符串SqlConnection cnn=new SqlConnection(strCnn);/定义连
12、接对象为了使上述代码正常工作,必须使用using System.Configuration语句引入命名空间。,web.config文件中有了连接字符串后,就可以从web.,创建好SqlConnection连接对象后,并没有与数据库建立连接,要建立数据库连接,还必须使用cnn.Open()方法打开数据连接,然后才可以对数据库进行各种操作。操作完数据库后,一定要使用cnn.Close()方法关闭连接。.【例8-2】演示如何建立Student数据库的连接。,参见示例第08章SqlServerDemoConnectionDemo.aspx,创建好SqlConnection连接对象后,并没有与数据库建,
13、8.2.2 使用SqlCommand对象执行数据库命令,成功连接数据库后,接着就可以使用SqlCommand对象对数据库进行各种操作,如读取、写入、修改和删除等操作。,SqlCommand对象的常用属性,8.2.2 使用SqlCommand对象执行数据库命令成功连,建立SqlCommand对象的方法有4种:,SqlCommand 对象名=new SqlCommand();SqlCommand 对象名=new SqlCommand(SQL命令);SqlCommand 对象名=new SqlCommand(SQL命令,连接对象);SqlCommand 对象名=new SqlCommand(SQL命
14、令,连接对象,事务对象);,建立SqlCommand对象的方法有4种:SqlComman,SqlCommand对象的常用方法,SqlCommand对象的常用方法方 法说 明Can,1.ExecuteNonQuery方法ExecuteNonQuery方法只能执行Insert、Update和Delete命令,因此可以增加、修改和删除数据库中的数据。增加、修改和删除数据库中的数据的步骤相同,具体描述如下:创建SqlConnection对象,设置连接字符串;创建SqlCommand对象,设置它的Connection和CommandText属性,分别表示数据库连接和需要执行的SQL命令。打开与数据库连接
15、;使用SqlCommand对象的ExecuteNonQuery方法执行CommandText中的命令;并根据返回值判断是否对数据库操作成功。关闭与数据库连接;,1.ExecuteNonQuery方法,【例8-3】演示如何使用ExecuteNonQuery方法增加Student数据库中UserInfo表的用户信息。,参见示例第08章SqlServerDemoCommand_InsertDemo.aspx,【例8-4】演示如何使用ExecuteNonQuery方法修改Student数据库中UserInfo表的用户信息。,参见示例第08章SqlServerDemoCommand_UpdateDemo
16、.aspx,【例8-5】演示如何使用ExecuteNonQuery方法删除Student数据库中UserInfo表的用户信息。,参见示例第08章SqlServerDemoCommand_DeleteDemo.aspx,【例8-3】演示如何使用ExecuteNonQuery方法增,2.ExecuteScalar方法ExecuteScalar方法一般用来执行查询单值的Select命令,它以object类型返回结果表第一行第一列的值。对数据库操作时,具体步骤如下:创建SqlConnection对象,设置连接字符串;创建SqlCommand对象,设置它的Connection和CommandText属性
17、;打开与数据库连接;使用SqlCommand对象的ExecuteScalar方法执行CommandText中的命令;并返回结果表第一行第一列的值供应用程序使用。关闭与数据库连接;,2.ExecuteScalar方法,【例8-6】演示如何使用ExecuteScalar方法查询Student数据库中StuInfo表的学生人数。,参见示例第08章SqlServerDemoCommand_ExecuteScalar.aspx,【例8-6】演示如何使用ExecuteScalar方法查询S,8.2.3 使用SqlDataReader读取数据,SqlDataReader对象是一个向前只读的记录指针,用于快速
18、读取数据。对于只需要顺序显示数据表中记录的应用而言,SqlDataReader对象是比较理想的选择。在读取数据时,它需要与数据源保持实时连接,以循环的方式读取结果集中的数据。这个对象不能直接实例化,而必须调用SqlCommand对象的ExecuteReader方法才能创建有效的SqlDataReader对象。SqlDataReader对象一旦创建,即可通过对象的属性、方法访问数据源中的数据。,8.2.3 使用SqlDataReader读取数据SqlDa,SqlDataReader对象的常用属性:FieldCount:获取由SqlDataReader得到的一行数据中的字段数。isClosed:获
19、取SqlDataReader对象的状态。true表示关闭,false表示打开。HasRows:表示SqlDataReader是否包含数据。,SqlDataReader对象的常用属性:,SqlDataReader对象的常用方法:Close()方法:不带参数,无返回值,用来关闭SqlDataReader对象。Read()方法:让记录指针指向本结果集中的下一条记录,返回值是true或false。NextResult()方法:当返回多个结果集时,使用该方法让记录指针指向下一个结果集。当调用该方法获得下一个结果集后,依然要用Read方法来遍历访问该结果集。GetValue(int i)方法:根据传入的列
20、的索引值,返回当前记录行里指定列的值。由于事先无法预知返回列的数据类型,所以该方法使用Object类型来接收返回数据。GetValues(Object values)方法:该方法会把当前记录行里所有的数据保存到一个数组里。可以使用FieldCount属性来获知记录里字段的总数,据此定义接收返回值的数组长度。GetDataTypeName(int i)方法:通过输入列索引,获得该列的类型。GetName(int i)方法:通过输入列索引,获得该列的名称。综合使用GetName和GetValue两方法,可以获得数据表里列名和列的字段。IsDBNull(int i)方法:判断指定索引号的列的值是否为
21、空,返回True或False。,SqlDataReader对象的常用方法:,使用SqlDataReader对象查询数据库的一般步骤:创建SqlConnection对象,设置连接字符串;创建SqlCommand对象,设置它的Connection和CommandText属性,分别表示数据库连接和需要执行的SQL命令。打开与数据库连接;使用SqlCommand对象的ExecuteReader方法执行CommandText中的命令;并把返回的结果放在SqlDataReader对象中。通过循环,处理数据库查询结果。关闭与数据库连接;,使用SqlDataReader对象查询数据库的一般步骤:,【例8-7】
22、演示如何使用SqlDataReader对象读取StuInfo表的记录。,参见示例第08章SqlServerDemoDataReaderDemo.aspx,【例8-7】演示如何使用SqlDataReader对象读取S,使用SqlDataReader对象时,应注意以下几点:读取数据时,SqlConnection对象必须处于打开状态。必须通过SqlCommand对象的ExecuteReader()方法,产生SqlDataReader对象的实例。只能按向下的顺序逐条读取记录,不能随机读取。且无法直接获知读取记录的总数。SqlDataReader对象管理的查询结果是只读的,不能修改。,使用SqlData
23、Reader对象时,应注意以下几点:,在Visual Studio 2008的Web应用程序中,提供了大量列表绑定控件,如DropDownList、ListBox和GridView控件等,可以直接将SqlDataReader对象绑定到这些控件来显示查询结果。与控件绑定时,主要设置控件的以下属性和方法:DataSource属性:设置控件的数据源,可以是SqlDataReader对象,也可以是DataSet对象。DataMember属性:当数据源为DataSet对象时,设置控件要显示的数据表名。DataTextField属性:对于绑定DropDownList、ListBox等控件时,设置显示数据的
24、字段名称。DataValueField属性:对于绑定DropDownList、ListBox等控件时,设置隐藏值的字段名称。DataBind方法:设置完控件的绑定属性后,调用该方法将数据绑定到控件上。,在Visual Studio 2008的Web应用程序中,提,【例8-8】演示如何将SqlDataReder对象与DropDownList控件绑定。本示例主要在DropDownList控件中显示Major表的记录。,参见示例第08章SqlServerDemoDataReader_DataBind.aspx,【例8-8】演示如何将SqlDataReder对象与Drop,8.2.4 为SqlComm
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- ADONET 数据 访问 技术 课件
链接地址:https://www.31ppt.com/p-2109540.html