在连接环境中获取数据教材课件.ppt

上传人(卖家):ziliao2023 文档编号:7445316 上传时间:2024-01-11 格式:PPT 页数:31 大小:614.50KB
下载 相关 举报
在连接环境中获取数据教材课件.ppt_第1页
第1页 / 共31页
在连接环境中获取数据教材课件.ppt_第2页
第2页 / 共31页
在连接环境中获取数据教材课件.ppt_第3页
第3页 / 共31页
在连接环境中获取数据教材课件.ppt_第4页
第4页 / 共31页
在连接环境中获取数据教材课件.ppt_第5页
第5页 / 共31页
点击查看更多>>
资源描述

1、ADO.NET(在连接环境中获取数据在连接环境中获取数据)陈皓月陈皓月体验SQL 指定应用程序所需要访问的数据 返回所访问到的数据 在同数据源之间建立连接之后,应用程序和在同数据源之间建立连接之后,应用程序和数据源之间的交流就包括以下两个方面数据源之间的交流就包括以下两个方面。SQL(续)Command对象:包含要对数据库执行的SQL命令 DataReader对象:根据Command对象的查询结果,按顺序获取单行数据 ADO.NET提供两个对象提供两个对象,二者相互配合来实现二者相互配合来实现应用程序和数据源之间的交流应用程序和数据源之间的交流。Command对象的属性 Command对象的属

2、性及其描述如下表所示对象的属性及其描述如下表所示。属性属性描述描述CommandText要对数据源执行的要对数据源执行的SQL 语句或存储过程语句或存储过程CommandTimeout在终止执行命令的尝试并生成错误提示信息在终止执行命令的尝试并生成错误提示信息之前的等待时间(单位:秒)之前的等待时间(单位:秒)CommandType指示如何解释指示如何解释 CommandText 属性,默认值属性,默认值是是TextConnectionCommand对象所要使用的对象所要使用的ConnectionParametersParameters集合集合Transaction执行命令所在的事务(将在第执

3、行命令所在的事务(将在第7章中详细阐述)章中详细阐述)UpdatedRowSource确定当确定当Command对象被对象被DataAdapter或或TableAdapter的的Update()方法使用时,其结方法使用时,其结果如何应用于果如何应用于DataRowCommandType属性(续)CommandType属性用来指示如何解释属性用来指示如何解释CommandText属性的内容属性的内容。其取值及描述如下表所示。其取值及描述如下表所示。属性值属性值描述描述StoredProcedure指示指示CommandText属性所包含的是属性所包含的是要执行的存储过程的名称要执行的存储过程的名

4、称TableDirect指示指示CommandText属性所包含的是属性所包含的是要访问的一个表的名称,从此表中将要访问的一个表的名称,从此表中将取出所有的列和行取出所有的列和行Text指示指示CommandText属性包含的是要属性包含的是要执行的执行的SQL命令(此为默认值)命令(此为默认值)UpdateRowSource属性 UpdateRowSource属性的值及其描述如下属性的值及其描述如下。属性值属性值描述描述Both将将Command对象的输出参数和第一个对象的输出参数和第一个返回行都映射至已更改的行返回行都映射至已更改的行FirstReturnedRecord将第一个返回行中的

5、数据映射至已更改将第一个返回行中的数据映射至已更改的行的行None忽略所返回的任何参数或行忽略所返回的任何参数或行OutputParameters仅将仅将Command对象的输出参数映射到对象的输出参数映射到已更改的行已更改的行设置Command对象的属性(续)Command对象的大多数属性是通过简单的赋对象的大多数属性是通过简单的赋值语句来设置的,不过值语句来设置的,不过Parameters集合是一集合是一个例外,它所使用的是个例外,它所使用的是Add()方法。在下一节方法。在下一节中将详细讨论中将详细讨论Parameters集合集合。代码示例代码示例C#代码示例代码示例VBCommand对

6、象的参数 要在要在Command对象中使用参数,通常有以下对象中使用参数,通常有以下三个步骤三个步骤。在命令文本或存储过程中指定参数在命令文本或存储过程中指定参数。1将参数添加至将参数添加至Command对象的对象的Parameters集合中集合中。2设置参数值设置参数值。3Command对象的参数(续)Parameters集合提供了一系列方法对集合进行配置集合提供了一系列方法对集合进行配置。方法方法描述描述Add()将参数添加到集合中将参数添加到集合中Clear()从集合中移除所有参数从集合中移除所有参数Insert()将参数插入集合中的指定索引位置将参数插入集合中的指定索引位置Remove

7、()从集合中移除所指定的参数从集合中移除所指定的参数添加并配置参数 创建新的创建新的SqlParameter对象或对象或OleDbParameter对象对象。1通过编程方式将参数添加至通过编程方式将参数添加至Command对象的对象的Parameters 集合中,需遵循以下步骤集合中,需遵循以下步骤。配置参数对象的属性配置参数对象的属性。2调用调用Command对象对象Parameters 集合的集合的Add()方法,将参方法,将参数添加至数添加至Command对象的对象的Parameters 集合中。集合中。3添加并配置参数(续)参数对象的属性及其描述如下表所示。参数对象的属性及其描述如下表

8、所示。属性属性描述描述ParameterName将该属性设置为将该属性设置为SQL命令或存储过程中的参数名,如命令或存储过程中的参数名,如“EmployeeID”DbType、SqlDbType或或 OleDbType将该属性设置为参数的数据类型。将该属性设置为参数的数据类型。设置设置SqlParameter对象的数据类型的方法有以下两种对象的数据类型的方法有以下两种。在在DbType枚举中选择一个值赋给枚举中选择一个值赋给DbType属性属性在在SqlDbType枚举中选择一个值赋给枚举中选择一个值赋给SqlDbType属性属性Size设置该属性以指示参数大小,例如字符串参数中字符的个数。无

9、需为已设置该属性以指示参数大小,例如字符串参数中字符的个数。无需为已知且具有固定大小的数据类型(例如知且具有固定大小的数据类型(例如DbType.Int32)指定大小)指定大小Direction设置该属性以指示该参数是只输入参数、只输出参数、双向参数还是存设置该属性以指示该参数是只输入参数、只输出参数、双向参数还是存储过程的返回值。储过程的返回值。该属性可设置为该属性可设置为ParameterDirection枚举值之一:枚举值之一:ParameterDirection.Input、ParameterDirection.InputOutput、ParameterDirection.Output

10、或或ParameterDirection.ReturnValue。默。默认方向为认方向为ParameterDirection.InputValue对于只输入参数或双向参数而言,在运行该命令之前需要设置对于只输入参数或双向参数而言,在运行该命令之前需要设置Value属属性。性。对于只输出参数、双向参数和存储过程的返回值而言,在运行该命令之对于只输出参数、双向参数和存储过程的返回值而言,在运行该命令之后可以检索后可以检索Value属性属性设置Parameters的值 在设置好在设置好Parameters集合、执行集合、执行Command之前,必须为每一个之前,必须为每一个Parameter设置它们

11、的值。可以在设置它们的值。可以在“SqlParameter集合编辑器集合编辑器”中进行设置中进行设置。使用Command对象来执行 SQL 语句创建创建Command对象后,就可以对数据库执行命令对象后,就可以对数据库执行命令。方法方法描述描述Cancel()取消命令的执行取消命令的执行CreateParameter()创建创建SqlParameter对象的新实例对象的新实例ExecuteScalar()执行命令并返回查询结果集中第一行的第一列。执行命令并返回查询结果集中第一行的第一列。忽略额外的列或行忽略额外的列或行ExecuteNonQuery()执行命令并返回受影响的行数执行命令并返回受

12、影响的行数ExecuteReader()执行命令并返回一个执行命令并返回一个DataReader对象对象ExecuteXmlReader()执行命令并生成一个执行命令并生成一个XmlReader对象对象Prepare()在在 SQL Server 的实例上创建命令的一个准备的实例上创建命令的一个准备(预编译)版本(预编译)版本ResetCommandTimeout()将将CommandTimeout属性重置为其默认值属性重置为其默认值SqlCommand 和和 OleDbCommand类提供了相关的一些类提供了相关的一些方法来执行命令,其中最重要的有以下四种方法:方法来执行命令,其中最重要的有

13、以下四种方法:ExecuteScalar()方法方法 ExecuteNonQuery()方法方法 ExecuteReader()方法方法 ExecuteXMLReader()方法方法 使用使用Command对象来执行对象来执行 SQL 语句语句(续)(续)ExecuteScalar()方法1.打开一个数据库连接。打开一个数据库连接。2.创建并初始化一个创建并初始化一个Command对象。对象。3.对该对该Command对象调用对象调用ExecuteScalar()方法。方法。4.将从将从ExecuteScalar()返回的值转换为适当的数据返回的值转换为适当的数据类型。类型。5.释放该释放该C

14、ommand对象。对象。6.关闭该数据库连接关闭该数据库连接。执行返回标量结果的查询的步骤如下。执行返回标量结果的查询的步骤如下。ExecuteNonQuery()方法的返回值是方法的返回值是SQL命令或存命令或存储过程所影响的行数。储过程所影响的行数。DataReader对象及ExecuteReader()方法打开一个数据库连接。打开一个数据库连接。1要创建要创建DataReader对象,就需要执行对象,就需要执行Command类类的的ExecuteReader()方法。具体步骤如下。方法。具体步骤如下。创建并初始化一个创建并初始化一个Command对象对象。2对该对该Command对象调用

15、对象调用ExecuteReader()方法方法。3将将ExecuteReader()方法的返回值赋给一个方法的返回值赋给一个DataReader 对象。对象。4编写循环语句以对该编写循环语句以对该DataReader对象调用对象调用Read()方法,方法,并且每一次从其结果集中读取一行并且每一次从其结果集中读取一行。5每循环一次,即获取希望在当前行中处理的列的每循环一次,即获取希望在当前行中处理的列的值值。6DataReader对象及对象及ExecuteReader()方法(续)方法(续)如果查询命令返回多重结果集,则对该如果查询命令返回多重结果集,则对该DataReader对象调用对象调用N

16、extResult()方法方法。7执行完循环之后,释放或关闭该执行完循环之后,释放或关闭该DataReader对象对象。8释放该释放该Command对象对象。9关闭该数据库连接关闭该数据库连接。10代码示例代码示例C#代码示例代码示例VBDataReader对象及对象及ExecuteReader()方法方法(续续)使用Command对象进行异步操作 原本原本ADO.NET的的Command 对象执行对象执行SQL命令的命令的方法有方法有ExecuteReader()、ExecuteNonQuery()、ExecuteXmlReader()以及以及 ExecuteScalar()等,在等,在AD

17、O.NET 2.0中,除了中,除了ExecuteScalar()方法外,方法外,其余的方法都新增了以其余的方法都新增了以 Begin和和End关键字所关键字所嵌入的一对方法。嵌入的一对方法。代码示例代码示例C#代码示例代码示例VB使用Command对象查询多个活动结果集 在默认情况下,在通往启用在默认情况下,在通往启用MARS的主机的主机(例如(例如Microsoft SQL Server 2005)的连接上)的连接上,MARS是活动的。依赖于是活动的。依赖于MARS技术的编码技术的编码更为简单易读,并且使编程人员在开发数更为简单易读,并且使编程人员在开发数据集中的据集中的Web应用程序时可以

18、减少对内存应用程序时可以减少对内存的使用的使用,在一定程序上消除了性能瓶颈在一定程序上消除了性能瓶颈。使用Command对象查询多重活动结果集(续)创建一个如上所示的连接字符串创建一个如上所示的连接字符串。1请遵循以下步骤来建立请遵循以下步骤来建立MARS 。创建一个创建一个SqlConnection对象对象,并使用该连接字符串并使用该连接字符串对其进行初始化对其进行初始化。2使用使用Open()方法打开这个方法打开这个SqlConnection对象对象。3对于所要执行的查询,创建一个新的对于所要执行的查询,创建一个新的SqlCommand对象对象。4使用适当的命令使用适当的命令(如果想读取该

19、查询结果,可以使如果想读取该查询结果,可以使用用ExecuteReader()方法方法)。5完成后,关闭完成后,关闭SqlConnection对象对象。6使用Command对象查询多重活动结果集(续)习题1.假设正在创建一个假设正在创建一个 Windows 窗体应窗体应用程序。该应用程序使用名为用程序。该应用程序使用名为 cmd 的的 SqlCommand 对象对象,该该 cmd 对象执对象执行以下存储过程。行以下存储过程。CREATE PROCEDURE GetPhoneList AS BEGIN SELECT CompanyName,Phone FROM Customers SELECT

20、CompanyName,Phone FROM Suppliers END需要将所有返回的行添加至名为需要将所有返回的行添加至名为 lstPhones 的的 ListBox 控件控件,应该使用代码应该使用代码段段_。习题(续)A.SqlDataReader rdr=cmd.ExecuteReader();do while(rdr.Read()lstPhones.Items.Add(rdr.GetString(0)+t +rdr.GetString(1);while(rdr.NextResult();B.SqlDataReader rdr=cmd.ExecuteReader();while(rdr

21、.Read()lstPhones.Items.Add(rdr.GetString(0)+t +rdr.GetString(1);习题(续)C.SqlDataReader rdr=cmd.ExecuteReader();while(rdr.NextResult()while(rdr.Read()lstPhones.Items.Add(rdr.GetString(0)+t +rdr.GetString(1);D.SqlDataReader rdr=cmd.ExecuteReader();while(rdr.NextResult()lstPhones.Items.Add(rdr.GetString(

22、0)+t +rdr.GetString(1);习题(续)2.请描述请描述MyCommand的的ExecuteNonQuery()、ExecuteScalar()、ExecuteReader()方法之间的方法之间的区别。区别。习题(续)3.创建一个显示创建一个显示 GridView 的的 Web 窗体。窗体。GridView 的数据源是名为的数据源是名为 dsOrders 的数据集。的数据集。该数据集包含名为该数据集包含名为 Orders 和和 OrderDetails 的两个的两个数据表。将数据表。将Orders 表的表的OrderID设置为设置为int,将将OrderDetails表的表的O

23、rderID设置为设置为decimal,使用以下使用以下代码段创建这两个数据表之间的关系。(行号代码段创建这两个数据表之间的关系。(行号仅供参考仅供参考。)。)01 dtOrders=dsOrders.TablesOrders;02 dtOrderDetails=dsOrders.TablesOrderDetails;03 colParent=dtOrders.ColumnsOrderID;04 colChild=dtOrderDetails.ColumnsParentOrderID;05 dsOrders.Relations.Add(Rel1,colParent,colChild,false

24、);此程序会发生异常吗?如果会,在哪里发此程序会发生异常吗?如果会,在哪里发生异常?为什么?生异常?为什么?习题(续)4.如果使用如果使用ExecuteNonQuery()方法,执行方法,执行以下以下SQL语句,那么在表创建成功后语句,那么在表创建成功后,该该方法方法的返回值是多少的返回值是多少?SQL=CREATE TABLE LookupCodes(code_id smallint IDENTITY(1,1)PRIMARY KEY CLUSTERED,code_desc varchar(50)NOT NULL)习题(续)5.使用使用Command对象进行异步操作时,对象进行异步操作时,Command 对象执行对象执行SQL命令的方法如命令的方法如ExecuteReader()、ExecuteNonQuery()、ExecuteXmlReader()以及以及 ExecuteScalar(),只要新增以只要新增以 Begin和和End关键字关键字所嵌入所嵌入的的一对方法就可以了吗一对方法就可以了吗?习题(续)6.如何在单个连接上执行多重如何在单个连接上执行多重SQL命令命令或存储过程?或存储过程?

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 办公、行业 > 各类PPT课件(模板)
版权提示 | 免责声明

1,本文(在连接环境中获取数据教材课件.ppt)为本站会员(ziliao2023)主动上传,163文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。
2,用户下载本文档,所消耗的文币(积分)将全额增加到上传者的账号。
3, 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(发送邮件至3464097650@qq.com或直接QQ联系客服),我们立即给予删除!


侵权处理QQ:3464097650--上传资料QQ:3464097650

【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。


163文库-Www.163Wenku.Com |网站地图|