2022年C#数据库操作 2.pdf
《2022年C#数据库操作 2.pdf》由会员分享,可在线阅读,更多相关《2022年C#数据库操作 2.pdf(31页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、11.3 ADO.NET概念ADO.NET是由很多类组成的类库,这些类提供了许多对象,分别用来实现连接数据库,查询数据, 插入数据, 更新数据和删除数据等操作。ADO.NET提供了下面两种访问数据库的方法(1)利用 Connection ,Command 和 DataReader 对象访问数据库。这种方式只能从数据库读取数据,不能添加,修改和删除基类。如果只是进行查询,这种方式效率更高一些(2)利用 Connection,Command,DataAdapter 和 DataSet 对象。这种方式比较灵活,不仅可以读取数据库进行查询操作。还可以进行添加,删除和修改等操作。另外, ADO.NET对
2、象模型主要由两个基本组件构成;一个是ADO.NET数据库提供程序,用于连接到数据库,执行命令和检查结果;另一个是数据集(DataSet) ,DataSet 对象是支持ADO.NET的断开式,分布式数据方案的核心对象。1 .NET Data Provider .NET 数据提供者是指存取数据源的一组类库,主要是为了统一各类型数据源的存取方式而设计出一套高效类库。在 .NET Data Provider中包括了下表四个对象对象名称功能说明Connection 提供和数据源的连接功能Command 提供存取数据库命令,并执行传送数据或修改数据的命令,例如执行 SQL命令,预存程序。DataAdapt
3、er 担任DataSet 对象和数据源间的桥梁。DataAdapter使用四个Command 对象执行查询,新增,修改,删除的SQL命令,把数据加载 DataSet,或者把DataSet 内的数据更新返回数据源。DataReader 通过 Command 对象执行SQL查询命令取得数据流,以便进行高速,只读的数据浏览功能DataSet 该对象可视为一个虚拟的数据源。在该对象中,存在着许多DataTable 对象。 DataTable对象可以看作一个内存中的Table,开发人员可以自定义Table 中的栏目来在显示数据,也可以通过将不同数据源的数据存在不同DataTable 对象的方式将这些数据
4、整合在一起。11.4 ADO.NET对象不同的数据提供程序会由于其所用的数据库技术不同而有不同的实现方式。它们提供了对底层数据源的访问,包括四个数据对象,其分别是Connection 对象, Command 对象,DataReader 对象和 DataAdapter 对象。11.4.1 Connection 对象Connection 对象用于连接到数据源。ADO.NET中包括 OleDbConnection 和 SqlConnection等对象,前者用来连接基于OLE DB的数据库,后者专门用来连接SQL Server数据库。(1)使用 SqlConnection 对象连接到SQL Serve
5、r数据库连接到数据库是访问数据库的第一步,可以使用下面的语句连接到SQL Server 的 pubs数据库名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 31 页 - - - - - - - - - String ConnectionString= “server=( local) ;uid=sa;pwd=;database=pubs” ;如果是 Windows 身份验证时;则连接字符串具有如下形式Data Source=( local) ;Initial Catalog
6、=数据库名; Integrated Security=True ;SqlConnection MyConnection=new SqlConnection (ConnectionString )其中,ConnectionString 变量存储了访问数据库的各种信息,server 用于指定运行SQL Server的服务器; uid 和 pwd 分别指定登录到SQL Server服务器的用户名和密码;database 指定数据库名, MyConnection 变量为 SqlConnection 类型的变量,代表了实际的连接对象(3)使用 OleDbConnection 对象连接到OLE数据源进行数
7、据库的连接需要使用连接字符串,连接OLE DB数据库(以Access数据库为例)的 Connection 对象的语句为String ConnectionString= “Provider=Microsoft.Jet.OLEDB.4.0 ” ;Data Source=“文件路径及文件名” ;如果数据库使用Access 2007版本编写的时候连接字符串改为String ConnectionString= “Provider= Microsoft.ACE.OLEDB.12.0” ;Data Source=“文件路径及文件名” ;(1)注意 Data Source 要分开写即中间要留有空格OleDbC
8、onnection MyConnection=new OleDbConnection (ConnectionString )其中 Provider 提出了 OLE DB数据库的驱动程序, DataSource 提出 Access数据库文件名的绝对路径。表 17.3 SqlConnection 连接字符串中的常用关键字名称默 认值说明Data Source或Server 或Address或Addr 或NetworkAddress 连接的 SQL Server实例名称或网络地址Initial Catalog 或Database 要连接的数据库名称Integrated Security 或Trust
9、ed_Connection False 当为 false 时,在连接时必须指定SQL Server登录账号和密码Password 或Pwd SQLServer登录账户密码Persist Security Info False 当该值设置为false 或 no 时,如果要连接是打开的或者一直处于打开状态,那么安全信息将不会作为连接的一部分User ID SQL Server登录账户(4)OleDbConnection 与 SqlConnection 对象常用的属性和方法作为连接不同数据库的对象,OleDbConnection 与 SqlConnection 具有同样的属性和方法,如表11.1 和
10、 11.2 所示名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 31 页 - - - - - - - - - 表 11.1 Connection 对象的常用属性属性含义ConnectionString 获取或设置用于打开SQL数据库的字符串ConnectionTimeOut 获取终止尝试连接并生成错误之前所等待的时间DataBase 获取当前数据库或连接打开后要使用的数据库名称DataSource 获取要连接SQL Server实例名称ServerVersion 获取包含
11、客户端要连接的SQL Server实例的版本字符串State 获取或设置连接的当前状态SqlConnection 类的 State 属性表述当前数据库连接状态;其值是一个ConnectionState 枚举类型, ConnectionState 枚举类型共包含6 个值,表示6 种数据库连接状态。(1)Closed:连接处于关闭状态;(2)Connecting:正在与数据源连接;(3)Open:连接处于打开状态;(4)Executing:正在执行命令;(5)Fetching:长在检索数据;(6)Broken:连接中断;表 11.2 Connection 对象的常用方法方法含义Open 打开数据库
12、连接Close 关闭与数据库的连接,这是关闭任何连接的首选方法ChangeDatabase 为打开的SqlConnection 更改当前数据库11.4.2 Command 对象在创建 Connection 对象后,需要创建Command 对象实现对数据库的操作,Command 对象要与对应的连接方式匹配;对SqlConnection 采用 SqlCommand;对 OleDbConnection 则采用 OleDbCommand (1)创建 SqlCommand 对象创建一个SqlCommand 对象的语句为String ConnectionString = server =(local);u
13、id=sa;pwd=;database=pubs; / 创建一个 SqlConnection 对象 SqlConnection MyConnection = new SqlConnection(ConnectionString); / 打开 Connection 对象,以实现对Command 对象的进一步操作 MyConnection.Open(); string SqlString = select * from authors; / 创建一个 SqlCommand 对象 SqlCommand MyCommand = newSqlCommand(SqlString, MyConnection
14、) ;名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 3 页,共 31 页 - - - - - - - - - 2)SqlCommand和 OleDbCommand 对象的常用属性和方法 SqlCommand 与 OleDbCommand 对象具有同样的属性和方法,其常用属性和方法如表 11.3 和表 11.4 所示表 11.3 Command 对象的常用属性属性含义CommandText 获取或设置对数据源执行的T-SQL语句或存储过程CommandTimeOut 获取或设置在终止
15、尝试并生成错误之前的等待时间Connection 获取或设置SqlCommand 实例并使用SqlConnection 表 11.4 Command 对象的常用方法方法含义ExecuteReader 将 CommandText 发送到 Connection 并生成一个SqlDataReader ExecuteNonQuery 对连接执行T-SQ语句并返回受影响的行数(成功执行时,返回1,否则返回0;ExecuteScalar 执行查询并返回查询所返回的结果集中第一行的第一列的值。忽略额外的列或行11.4.3 DataReader 对象DataReader 对象提供了一个只读的,单项前移的记录集
16、;使用该对象可以有效地节约内存,因为内存中一次只保存一条记录,而不是将所有记录都装入内存。与DataSet 相比,如果执行纯粹的读操作,DataReader 的速度要快得很多。DataReader对象只能与Command 对象结合使用, 并要与 Command 对象采用的方式相匹配;对SqlCommand 采用 SqlDataReader;对 OleDbCommand 则采用过OleDbDataReader DataReader 对象的常用属性和方法如表11.5 和表 11.6 所示表 11.5 DataReader 对象的常用属性属性含义FieldCount 表明当前记录中的字段数据。为只读
17、属性HasRows 表明是否还有记录未被读取。为只读属性IsClosed 表明 DataReader 对象是否已经关闭,为只读属性GetValue 获取以本地格式表示的指定列的值3 DataReader 常用的属性和方法通过 Command 对象 ExecuteReader 方法执行SQL查询命令,可建立DataReader对象, DataReader 对象内存放着查询结果,可使用下表DataReader 对象的属性与方法逐一取得每条记录或相关字段的数据表 11.6 DataReader 对象常用的方法方法含义Close 完成读取DataReader 对象的查询结果, 可使用这个方法关闭 Da
18、taReader对象FieldCount 属性将从当前DataReader 查询结果中取得的数据记录的字段名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 4 页,共 31 页 - - - - - - - - - 总数返回。若返回值为5,表示该条数据记录共有5 个字段,其字段下标为0-4(字段下标从0 开始)GetDataTypeName(i)用于获取字段的数据类型名,参数i 为字段序数GetName(i)获取字段名,参数i 为字段序数DataReader“ 字段名称 ” 取得字段名称
19、所指的字段数据GetValues(ArrayName) 读 取 记 录 中 所 有 字 段 值 , 并 将 结 果 存 入 数 组 ,参 数ArrayName 为数组名IsDBNull(i)判断某个字段是是否为空值,字段下标从0 开始算起,若没有数据返回true,否则返回false GetValue( i)取得第 i 个字段的数据内容,字段下标从0 开始算起GetOrdinal (“ 字 段 名称” )取得某个字段的下标。0 为第一例Read()先将记录指针移到下一条,并判断记录指针是否指到EOF(文件结束符号) 。若记录指针指到EOF则返回 false;若记录指针没有指到EOF ,则返回Tr
20、ue;并将当前所指的数据记录从数据库中读出来,再将记录指针移到下一条记录文件开始符号文件结束符号BOF 1 2 3 4 5 EOF 如何执行会返回多结果集的数据命令欲执行一个会返回多结果集的数据命令,仍然是调用SqlCommand.ExecuteReader 方法,然后在调用属性NextResult 方法将数据读取器前移下一个结果集。如果有其他结果集,NextResult 方法会返回TRUE ;否则会返回False; 11.4.4 DataAdapter 对象DataAdapter 对象用来把来自特定数据源的信息调整为关系型数据格式,以适应 DataSet对象的需要。 DataAdapter
21、对象的功能很强大,不但负责把DataSet 与关系型数据源联系起来,而且能够自动改变DataSet 的数据结构。DataAdapter 对象与采用的连接方式相匹配:对SqlConnection 采用 SqlDataAdapter;对OleDbConnection 则采用OleDbDataAdapter 。DataAdapter 对象具有的属性和方法如表11.7和表 11.8 所示表 DataAdapter 对象的常用属性属性含义DeleteCommand 获取或设置一个T-SQL语句或存储过程,以从数据集删除记录InsertCommand 获取或设置一个T-SQL语句或存储过程,以在数据源中插
22、入新纪录SelectCommand 获取或设置一个T-SQL语句或存储过程,用于在数据源中选择记录UpdateCommand 获取或设置一个T-SQL语句或存储过程,用于更新数据源中的记录表 11.8 DataAdapter 对象的常用方法方法含义Fill 在 DataSet 中添加或刷新行以匹配数据源中的行(即同时执行SQL语句)(SelectCommand)名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 5 页,共 31 页 - - - - - - - - - GetFillPa
23、rameters 获取当执行SQL Select语句时用户设置的参数Update 为 DataSet 中每个插入,已更新或删除的行条用相应的Insert,Update或 Delete 语句( InsertCommand ,DeleteCommand ,UpdateCommand )即更新数据库里面的数据。11.4.5 DataSet 对象DataSet 对象是一个简单,存储在内存的数据库,提供了一个不依赖于数据源而可进行持续编程的模型。一个DataSet 表示整个数据集,包含相互联系,约束和关系等内容。DataSet 包含一个或多个DataTable 对象, DataTable表示来自一个表的
24、行集合。DataTable对象有数据行(DataRow)和数据列(DataColumn) ,以及主键,外键约束和有关DataTable对象中数据的关系信息组成。对 DataSet 对象中数据的操作时通过调用这些子对象的方法完成的。DataSet(数据集)是ADO.NET离线数据存取结构中的核心部分,其功能主要是在内存中暂存并处理各种从数据源中所取回的数据要全面了解DataSet 对象,首先要了解DataTable 对象。利用DataTable 对象和方法可以对 DataTable 中存储的数据信息进行访问。DataTable的常用属性如表11.9 表 11.9 DataTable 对象的常用属
25、性属性含义TableName 用来返回表名Columns 用来返回表所包含所有列,可以用 Columns.Count 表明列数,用 Columns(列序数或列名)具体引用每一列,每一列都是一个DataColumn 对象Rows 用来返回表所包含的所有行(记录),可以像Columns 属性一样用Rows.Count 表名行数,使用Rows(行序数)来引用行,用Rows.Item(列序数或列名)引用行的某列,每一行都是一个DataRow 对象名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 2022年C#数据库操作 2022 C# 数据库 操作
限制150内