版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
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#代码示例代码示例V
6、BCommand对象的参数 要在要在Command对象中使用参数,通常有以下对象中使用参数,通常有以下三个步骤三个步骤。 在命令文本或存储过程中指定参数在命令文本或存储过程中指定参数 。1将参数添加至将参数添加至Command对象的对象的Parameters集合中集合中 。2设置参数值设置参数值 。3Command对象的参数(续) Parameters集合提供了一系列方法对集合进行配置集合提供了一系列方法对集合进行配置 。方法方法描述描述Add()将参数添加到集合中将参数添加到集合中Clear()从集合中移除所有参数从集合中移除所有参数Insert()将参数插入集合中的指定索引位置将参数插入集
7、合中的指定索引位置Remove()从集合中移除所指定的参数从集合中移除所指定的参数添加并配置参数 创建新的创建新的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、P
10、arameterDirection.Output或或ParameterDirection.ReturnValue。默。默认方向为认方向为ParameterDirection.InputValue对于只输入参数或双向参数而言,在运行该命令之前需要设置对于只输入参数或双向参数而言,在运行该命令之前需要设置Value属属性。性。对于只输出参数、双向参数和存储过程的返回值而言,在运行该命令之对于只输出参数、双向参数和存储过程的返回值而言,在运行该命令之后可以检索后可以检索Value属性属性设置Parameters的值 在设置好在设置好Parameters集合、执行集合、执行Command之前,必须为每
11、一个之前,必须为每一个Parameter设置它们的值。可以在设置它们的值。可以在“SqlParameter集合编辑器集合编辑器”中进行设置中进行设置 。使用Command对象来执行 SQL 语句创建创建Command对象后,就可以对数据库执行命令对象后,就可以对数据库执行命令 。方法方法描述描述Cancel()取消命令的执行取消命令的执行CreateParameter()创建创建SqlParameter对象的新实例对象的新实例ExecuteScalar()执行命令并返回查询结果集中第一行的第一列。执行命令并返回查询结果集中第一行的第一列。忽略额外的列或行忽略额外的列或行ExecuteNonQu
12、ery()执行命令并返回受影响的行数执行命令并返回受影响的行数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()返回的值转换为
14、适当的数据返回的值转换为适当的数据类型。类型。 5.释放该释放该Command对象。对象。6.关闭该数据库连接关闭该数据库连接 。执行返回标量结果的查询的步骤如下。执行返回标量结果的查询的步骤如下。 ExecuteNonQuery ()方法的返回值是方法的返回值是SQL命令或存命令或存储过程所影响的行数。储过程所影响的行数。DataReader对象及ExecuteReader()方法打开一个数据库连接。打开一个数据库连接。 1要创建要创建DataReader对象,就需要执行对象,就需要执行Command类类的的ExecuteReader()方法。具体步骤如下。方法。具体步骤如下。 创建并初始化
15、一个创建并初始化一个Command对象对象 。 2对该对该Command对象调用对象调用ExecuteReader()方法方法 。 3将将ExecuteReader()方法的返回值赋给一个方法的返回值赋给一个DataReader 对象。对象。 4编写循环语句以对该编写循环语句以对该DataReader对象调用对象调用Read()方法,方法,并且每一次从其结果集中读取一行并且每一次从其结果集中读取一行 。 5每循环一次,即获取希望在当前行中处理的列的每循环一次,即获取希望在当前行中处理的列的值值 。 6DataReader对象及对象及ExecuteReader()方法(续)方法(续)如果查询命令
16、返回多重结果集,则对该如果查询命令返回多重结果集,则对该DataReader对象调用对象调用NextResult()方法方法 。 7执行完循环之后,释放或关闭该执行完循环之后,释放或关闭该DataReader对象对象 。 8释放该释放该Command对象对象 。 9关闭该数据库连接关闭该数据库连接 。 10代码示例代码示例C#代码示例代码示例VBDataReader对象及对象及ExecuteReader()方法方法(续续)使用Command对象进行异步操作 原本原本ADO.NET的的Command 对象执行对象执行SQL命令的命令的方法有方法有ExecuteReader()、ExecuteNo
17、nQuery()、ExecuteXmlReader ()以及以及 ExecuteScalar ()等,在等,在ADO.NET 2.0中,除了中,除了ExecuteScalar()方法外,方法外,其余的方法都新增了以其余的方法都新增了以 Begin和和End关键字所关键字所嵌入的一对方法。嵌入的一对方法。代码示例代码示例C#代码示例代码示例VB使用Command对象查询多个活动结果集 在默认情况下,在通往启用在默认情况下,在通往启用MARS的主机的主机(例如(例如Microsoft SQL Server 2005)的连接上)的连接上, MARS是活动的。依赖于是活动的。依赖于MARS技术的编码技
18、术的编码更为简单易读,并且使编程人员在开发数更为简单易读,并且使编程人员在开发数据集中的据集中的Web应用程序时可以减少对内存应用程序时可以减少对内存的使用的使用, 在一定程序上消除了性能瓶颈在一定程序上消除了性能瓶颈 。使用Command对象查询多重活动结果集(续) 创建一个如上所示的连接字符串创建一个如上所示的连接字符串 。1请遵循以下步骤来建立请遵循以下步骤来建立MARS 。创建一个创建一个SqlConnection对象对象, 并使用该连接字符串并使用该连接字符串对其进行初始化对其进行初始化 。2使用使用Open()方法打开这个方法打开这个SqlConnection对象对象 。3对于所要
19、执行的查询,创建一个新的对于所要执行的查询,创建一个新的SqlCommand对象对象 。4使用适当的命令使用适当的命令(如果想读取该查询结果,可以使如果想读取该查询结果,可以使用用ExecuteReader()方法方法)。5完成后,关闭完成后,关闭SqlConnection对象对象 。6使用Command对象查询多重活动结果集(续) 习题1.假设正在创建一个假设正在创建一个 Windows 窗体应窗体应用程序。该应用程序使用名为用程序。该应用程序使用名为 cmd 的的 SqlCommand 对象对象, 该该 cmd 对象执对象执行以下存储过程。行以下存储过程。 CREATE PROCEDURE
20、 GetPhoneList AS BEGIN SELECT CompanyName, Phone FROM Customers SELECT CompanyName, Phone FROM Suppliers END需要将所有返回的行添加至名为需要将所有返回的行添加至名为 lstPhones 的的 ListBox 控件控件, 应该使用代码应该使用代码段段_ 。习题(续)A. SqlDataReader rdr = cmd.ExecuteReader(); do while (rdr.Read() lstPhones.Items.Add(rdr.GetString(0) + t + rdr.Ge
21、tString(1); while (rdr.NextResult();B. SqlDataReader rdr = cmd.ExecuteReader(); while (rdr.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.Get
22、String(1); D. SqlDataReader rdr = cmd.ExecuteReader(); while (rdr.NextResult() lstPhones.Items.Add(rdr.GetString(0) + t + rdr.GetString(1); 习题(续)2. 请描述请描述MyCommand的的ExecuteNonQuery()、ExecuteScalar()、ExecuteReader()方法之间的方法之间的区别。区别。习题(续)3. 创建一个显示创建一个显示 GridView 的的 Web 窗体。窗体。GridView 的数据源是名为的数据源是名为 dsOrders 的数据集。的数据集。该数据集包含名为该数据集包含名为 Orders 和和 OrderDetails 的两个的两个数据表。将数据表。将Orders 表的表的OrderID设置为设置为int, 将将OrderDetails表的表的OrderID设置为设置为decimal, 使用以下使用以下代码段创建这两个数据表之间的关系。(行号代码段创建这两个数据表之间的关系。(行号仅供参考仅供
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年大学第四学年(高级会计)合并报表编制测试题及答案
- 四川雅安天立校2025-2026学年初三5月考前模拟语文试题含解析
- 陕西省榆林市榆阳区2026届初三开学摸底联考数学试题含解析
- 四川省成都市金牛区市级名校2025-2026学年初三英语试题下学期第三次月考试题含解析
- 山东省聊城市东方中学2026届初三5月月考(二统模拟)语文试题含解析
- 山东省青岛市市南区统考市级名校2025-2026学年初三下学期第四次模拟(4月)考试语文试题含解析
- 山东省惠民县联考2026年初三下学期第二次“战疫”线上教学综合测试英语试题含解析
- 2026年政府与企业的合作模式在智能制造中的体现
- 2025 高中文学类阅读理解之童话世界课件
- 2026年智能家居中的机械设计解决方案
- 移动模架施工安全监理实施细则
- 中兴新云2026年测评-B套题
- 分岗设权内部控制制度
- 2026年全国体育单招考试时事政治(2025.6-2026.1)-2026届中职高考
- 2026年山西经贸职业学院单招职业技能考试题库及答案解析
- 警械使用课件
- 崔允漷建构新教学心得体会(共13篇)
- 输血相容性检测室内质控-课件
- 市政工程三级安全教育培训完整
- M30注浆砂浆配合比计算资料
- 《现代汉语语法词类》PPT课件(完整版)
评论
0/150
提交评论