ADO-04-在连接环境中获取数据_第1页
ADO-04-在连接环境中获取数据_第2页
ADO-04-在连接环境中获取数据_第3页
ADO-04-在连接环境中获取数据_第4页
ADO-04-在连接环境中获取数据_第5页
已阅读5页,还剩36页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、学习目标:掌握创建和初始化Command对象的方法掌握通过Visual Studio 2005配置Command对象的方法掌握在Visual Studio 2005中配置参数集合的方法掌握创建和配置Command对象参数的方法掌握通过使用Command对象来执行 SQL 语句的方法掌握创建DataReader的方法掌握获取DataReader的属性 掌握执行DataReader的方法掌握使用Command对象进行异步操作的方法掌握使用Command对象查询多重活动结果集的方法目标 SQL 指定应用程序所需要访问的数据 返回所访问到的数据 4.1 和数据源交流的语言- SQL在同数据源之间建立连

2、接之后,应用程序和数据源之间的交流就包括以下两个方面。SQL (续)Command对象:包含要对数据库执行的SQL命令 DataReader对象:根据Command对象的查询结果, 按顺序获取单行数据 4.1 和数据源的交流语言-SQLADO.NET提供两个对象, 二者相互配合来实现应用程序和数据源之间的交流。 Command 对象 通过Visual Studio 2005创建Command对象 通过编程方式创建Command对象 4.2 Command 对象通过Visual Studio 2005创建Command对象 4.2.1 通过Visual Studio 2005创建Command对

3、象在任意选项卡上单击鼠标右键,选择“选择项”命令, 手动加入工具箱。1通过Visual Studio 2005创建Command对象(续) 4.2.1 通过Visual Studio 2005创建Command对象等待一段时间后,出现“选择工具箱项”对话框,从中找到SqlCommand对象,勾选后单击“确定” 按钮。2工具箱中可看到SqlCommand控件,可以拖曳并使用它 。3通过Visual Studio 2005创建Command对象(续) 4.2.1 通过Visual Studio 2005创建Command对象在窗体设计器中,拖曳一个SqlCommand控件。 4通过Visual S

4、tudio 2005创建Command对象(续) 4.2.1 通过Visual Studio 2005创建Command对象在“属性”窗口中,把SqlCommand对象的Name属性值改为“ cmdGetEmployees ” 。5通过Visual Studio 2005创建Command对象(续) 4.2.1 通过Visual Studio 2005创建Command对象通过编程方式创建Command对象 4.2.2 通过编程方式创建Command对象C#SqlCommand myCommand = new SqlCommand();通过编程方式创建Command对象的过程很简单, 只需要按

5、照如下代码进行实例化 。通过编程方式创建Command对象 (续) 4.2.2 通过编程方式创建Command对象未指定关于连接的任何信息。1即使以上代码编译通过,也不能完成任何事情。原因如下。 也未指定所要执行的命令的信息。2总结 4.2.2 通过编程方式创建Command对象使用无参数的构造函数来创建Command对象的新实例,然后设置适当的属性值 。1总结一下,可以通过以下三种方式来创建Command对象 。使用带参数的构造函数, 并指定查询字符串和Connection对象。 2调用Connection对象的CreateCommand()方法 。 3Command对象的属性 4.3 Co

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

7、e()方法使用时,其结果如何应用于DataRowCommandText属性(续) 4.3.1 CommandText属性Visual Studio 2005中的查询生成器提供了多种方法来生成SQL语句。 CommandType属性(续) 4.3.3 CommandType属性CommandType属性用来指示如何解释CommandText属性的内容 。其取值及描述如下表所示。属性值描述StoredProcedure指示CommandText属性所包含的是要执行的存储过程的名称TableDirect指示CommandText属性所包含的是要访问的一个表的名称,从此表中将取出所有的列和行Text指

8、示CommandText属性包含的是要执行的SQL命令(此为默认值)设置Command对象的属性 4.3.8 设置Command对象的属性通过Visual Studio 2005设置Command对象的属性 通过编程设置Command对象的属性 设置Command对象的属性 (续) 通过Visual Studio 2005设置Command对象的属性在“窗体设计器”的组件托盘中,选中cmdGetEmployees 。1通过Visual Studio 2005设置Command对象的属性的步骤如下 。在“属性”窗口中,选择Connection属性,单击其右侧的下拉箭头,选择曾经使用

9、的SqlConnection数。 2设置Command对象的属性(续) 通过Visual Studio 2005设置Command对象的属性继续在“属性”窗口中选择CommandText属性,单击其右侧的省略号按钮 。3设置Command对象的属性(续) 通过Visual Studio 2005设置Command对象的属性在随后出现的“查询生成器”中,手动添加所需要的表。 4设置Command对象的属性(续) 通过Visual Studio 2005设置Command对象的属性双击“员工”表,将其添加至“查询生成器”中,然后单击“关闭”按钮 。5

10、设置Command对象的属性(续) 通过Visual Studio 2005设置Command对象的属性选择所需要的列,单击“确定”按钮 。6设置Command对象的属性(续) 通过Visual Studio 2005设置Command对象的属性设置Command对象的属性 (续) 通过编程设置Command对象的属性Command对象的大多数属性是通过简单的赋值语句来设置的,不过Parameters集合是一个例外,它所使用的是Add()方法。在下一节中将详细讨论Parameters集合。 Command对象的参数 4.4 Command对象的参数

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

12、数(续) 4.4 Command对象的参数配置Parameters集合 4.4.1 通过Visual Studio 2005配置Parameters集合在“窗体设计器”中,拖曳一个SqlCommand对象到窗体上 。1Visual Studio 2005 提供了参数集合编辑器来配置参数 。在“属性”窗口中,把Command对象的Name属性值改为“ cmdEmployeeDetails ” 。2选择Connection属性,在相应的下拉箭头中选择SqlConnection1 。3配置Parameters集合(续)选择Parameters属性,单击其右侧的省略号按钮 。4 4.4.1 通过Vis

13、ual Studio 2005配置Parameters集合在弹出的“SqlParameter 集合编辑器”中,添加所需要的参数,本示例需要添加一个EmployeeID参数 。5单击“确定” 按钮。6配置Parameters集合 (续) 4.4.1 通过Visual Studio 2005配置Parameters集合添加并配置参数 4.4.2 通过编程方式添加并配置参数创建新的SqlParameter对象或OleDbParameter对象 。1通过编程方式将参数添加至Command对象的Parameters 集合中,需遵循以下步骤 。配置参数对象的属性 。2调用Command对象Paramete

14、rs 集合的Add()方法,将参数添加至Command对象的Parameters 集合中。 3添加并配置参数(续) 4.4.2 通过编程方式添加并配置参数参数对象的属性及其描述如下表所示。属性描述ParameterName将该属性设置为SQL命令或存储过程中的参数名,如 “EmployeeID” DbType、SqlDbType或 OleDbType将该属性设置为参数的数据类型。 设置SqlParameter对象的数据类型的方法有以下两种。在DbType枚举中选择一个值赋给DbType属性在SqlDbType枚举中选择一个值赋给SqlDbType属性Size设置该属性以指示参数大小,例如字符串

15、参数中字符的个数。无需为已知且具有固定大小的数据类型(例如DbType.Int32)指定大小Direction设置该属性以指示该参数是只输入参数、只输出参数、双向参数还是存储过程的返回值。 该属性可设置为ParameterDirection枚举值之一:ParameterDirection.Input、ParameterDirection.InputOutput、ParameterDirection.Output或ParameterDirection.ReturnValue。默认方向为ParameterDirection.InputValue对于只输入参数或双向参数而言,在运行该命令之前需要设置

16、Value属性。对于只输出参数、双向参数和存储过程的返回值而言,在运行该命令之后可以检索Value属性设置Parameters的值 4.4.3 设置Parameters的值在设置好Parameters集合、执行Command之前,必须为每一个Parameter设置它们的值。可以在“SqlParameter集合编辑器”中进行设置 。使用Command对象来执行 SQL 语句4.5 使用Command对象来执行 SQL 语句创建Command对象后,就可以对数据库执行命令 。方法描述Cancel()取消命令的执行CreateParameter()创建SqlParameter对象的新实例Execut

17、eScalar()执行命令并返回查询结果集中第一行的第一列。忽略额外的列或行ExecuteNonQuery()执行命令并返回受影响的行数ExecuteReader()执行命令并返回一个DataReader对象ExecuteXmlReader()执行命令并生成一个XmlReader对象Prepare()在 SQL Server 的实例上创建命令的一个准备(预编译)版本ResetCommandTimeout()将CommandTimeout属性重置为其默认值SqlCommand 和 OleDbCommand类提供了相关的一些方法来执行命令,其中最重要的有以下四种方法: ExecuteScalar(

18、) 方法 ExecuteNonQuery()方法 ExecuteReader()方法 ExecuteXMLReader()方法 使用Command对象来执行 SQL 语句 (续) 4.5 使用Command对象来执行 SQL 语句ExecuteScalar()方法 ExecuteNonQuery()方法 4.5 使用Command对象来执行 SQL 语句使用Command对象来执行 SQL 语句 (续) ExecuteScalar()方法 4.5.1 ExecuteScalar()方法要检索某一种特定产品的名称。可以编写SQL语句返回此产品的ProductName 字段。 要查找数据库中的产品

19、数量。可以编写SQL 语句,使用COUNT()函数计算产品数量。要找出某一特定类别中的产品数量并获得该类别的名称。可以编写存储过程, 使用类别ID值作为输入参数,并设置类别名称为输出参数 。下面的示例显示可能需要命令返回单一值的场景。 ExecuteScalar()方法 (续) 4.5.1 ExecuteScalar()方法打开一个数据库连接。创建并初始化一个Command对象。 对该Command对象调用ExecuteScalar()方法。 将从ExecuteScalar()返回的值转换为适当的数据类型。 释放该Command对象。关闭该数据库连接 。执行返回标量结果的查询的步骤如下。 ExecuteNonQuery()方法 4.5.2 ExecuteNo

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论