




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、 第13章 ADO.Net数据库存取本讲内容nADO.NET概述nConnection和CommandnDataReadernDataAdapter和DataSetn建立数据存取的实用库1. ADO.NET概述RDBMS基本概念n在表中存储数据的数据库,例如Microsoft SQL Server,Microsoft Access等n表具有数据列和数据行n范式,数据标准化n表之间使用外键约束相互关联n支持数据操纵语言(DML)nSELECT,INSERT,UPDATE和DELETE实体关系图ADO.NET提供标准的CRUD接口nCRUDCreate Retrieve Update and De
2、letenMicrosoft .NET中ADO.NET来提供这些功能nADO.NET中托管的Providern调用标准的CRUD语句来访问数据库nADO.NET将不同的Provider的数据库访问方式抽象出来提供统一的访问接口nSystem.Data名称空间ADO.NET技术的发展nODBC nDAOnADOnADO.NETADO.NET的层次ManagedCodeADOManaged ProviderData StoreADO.NET中的数据访问层n 源代码 ADO.NET Data Adapter 或者 Command 对象 Connection 对象 SQL 供应程序 OLE DB .N
3、ET 供应程序 OLE DB 接口 SQL Sever 数据库 ProvidernProvider是一些托管的应用程序集n包含了对特定数据元的访问代码nSQL(7 +) provider:nSystem.Data.SqlClient名称空间nOLE/DB providernSystem.Data.OleDbnODBC providernSystem.Data.OdbcnOracle providernSystem.Data.OracleClient选择 .NET 数据提供程序提供程序注释SQL Server.NETNET 数据提供程序 建议用于使用 Microsoft SQL Server 7
4、.0 或更高版本的中间层应用程序。 OLE DB .NET对于 Microsoft SQL Server 版本 6.5 和较早版本,必须将用于 SQL Server 的 OLE DB 提供程序与 OLE DB .NET 数据提供程序一起使用 对象对象 OLE DB供应程序供应程序 System.Data.OleDb名字空间名字空间 SQL供应程序供应程序 System.Data.SqlClient名字空间名字空间DataAdapter System.Data.OleDb.OleDbDataAdapter System.Data.SqlClient.SqlDataAdapter Connecti
5、on System.Data.OleDb.OleDbConnection System.Data.SqlClient.SqlConnection Command System.Data.OleDb.OleDbCommand System.Data.SqlClient.SqlCommand DataReader System.Data.OleDb.OleDbDataReader System.Data.SqlClient.SqlDataReader ADO.NET体系结构.NET 数据程序的四个核心对象 对象对象说明说明Connection建立与特定数据源的连接。建立与特定数据源的连接。Comm
6、and对数据源执行命令。公开对数据源执行命令。公开 Parameters,并且可以从,并且可以从 Connection 在在 Transaction 的范围内执行。的范围内执行。DataReader从数据源中读取只进且只读的数据流。从数据源中读取只进且只读的数据流。DataAdapter用数据源填充用数据源填充 DataSet 并解析更新。并解析更新。访问数据的两种基本方式n方式1:DataAdapter及DataSetn方式2:Command及DataReadern它们都要使用Connection及Commandn方式1可以自动建立Command对象,适合于“离线”处理n方式2适合于只读数据
7、,效率较高2. Connection和CommandConnection对象n对于不同的Data Provider有不同Connection对象nSystem.Data.SqlClientnSqlConnectionnOpen()方法SQL Provider使用它来与SQL Server 7+数据库进行连接nConnectionString属性指定连接字符串参数Command对象nSqlCommand对象nCommandText属性指定需要执行的DML命令,来操纵数据nConnection属性为SqlCommand对象指定SqlConnection对象nSqlParameters属性(Coll
8、ection)包含了一组Command对象的参数nExecuteNonQuery()方法nExecuteScalar()方法从DML语句中只返回一个单独的值,返回结果集中的第一行第一列nExecuteReader()方法返回一个SqlDataReaderSQL Server导入的命名空间n语法如下:nnn连接SQL Server的连接串的书写格式 nstring connString=server=localhost;database=pubs;uid=sa;pwd=;nSqlConnection Conn = new SqlConnection(connString);使用Connectio
9、n对象n与数据库的所有通信都要通过一个打开的连接来进行。在对一个数据库进行数据的插入和读取之前,必须先打开与这个数据库的连接。n这种打开和关闭一个连接的操作与打电话的过程有相似之处。在你能够与SQL Sever进行通信之前,你必须先建立连接。连接字符串n (1)连接Access数据库,使用Microsoft.Jet.OLEDB.4.0Provider=Microsoft.Jet.OLEDB.4.0;Password=xxx;User ID=Admin;Data Source=D:CsExamplech10BIBLIO.MDB(2)连接Sql Server数据库,使用OLE DB Provide
10、rP r o v i d e r = S Q L O L E D B ; D a t a S o u r c e = M y S e r v e r ; I n i t i a l Catalog=MyDataBase;User Id=MyUser;Password=MyPassword(3)连接Sql Server数据库,使用SqlServer Providerdata source=MyServer;initial catalog=MyDataBase;user id=MyUser;password=MyPassword(4)连接Oracle数据库,使用OLE DB ProviderP r
11、 o v i d e r = M S D A O R A . 1 ; D a t a S o u r c e = o r a c l e _ d b ; U s e r ID=scott;Password=tiger(5)连接Oracle数据库,使用OLE DB ProviderUser Id=scott;Password=tiger;Data Source=使用Command对象n建立数据连接以后,可以利用Command对象来执行命令并从数据源返回结果Command对象可以用Command的构造函数来创建nExecuteReadernExecuteScalarnExecuteNonQuery
12、使用ExecuteReader方法nExecuteReader方法返回一个DataReader对象。DataReader对象是一个仅向前的只读的数据流。n一般ExecuteReader方法都执行SQL语句中的select语句。首先介绍Select语句的三种基本形式。使用ExecuteScalar方法nExecuteScalar方法返回单个值,如求和、总行数等SQL 语句的聚合函数。常用的SQL的聚合函数如表常用的SQL的聚合函数函数返回数值AVG(表达式)返回表达式中所有值的平均值。仅用于数字列并自动忽略 null 值。COUNT(表达式) 返回表达式中非 null 值的数量。可用于数字和字符
13、列。COUNT(*)返回表中的行数(包括有 null 值的行)。MAX(表达式)返回表达式中的最大值,忽略 null 值。可用于数字、字符和日期时间列。MIN(表达式)返回表达式中最小值,忽略 null 值。可用于数字、字符和日期时间列。SUM(表达式)返回表达式中所有值的总和,忽略 null 值。仅用于数字列。使用ExecuteNonQuery方法nExcuteNonQuery方法用于执行不需要返回结果的命令,如插入、删除和更新等操作下面简单介绍数据SQL 语句中的数据操作语言SQL语言基本分成三大体系:n数据定义语言DDL:用来定义数据n数据查询语言DQL:数据检索语言n数据操作语言DML
14、:包括INSERT,UPDATE和DELETE使用存储过程n用Command对象来使用存储过程n使用存储过程nsqlCmd.CommandType = CommandType.StoredProcedure;使用参数cmd.CommandText = INSERT INTO Nations(CName, EName, FName) VALUES (CName, EName, FName);cmd.Connection = this.sqlConnection1;cmd.Parameters.Add(CName, SqlDbType.VarChar, 60).Value = “aaaaaa”:
15、;使用参数比直接用字符串相加更安全,更清晰使用参数比直接用字符串相加更安全,更清晰cmd.CommandText = “Insert into Nataions(CName) Values(“ + xxx+ “)”;3. Command和DataReadern1)使用Command来获取DataReadern2)使用Command来获取一个数据n3)直接使用数据库命令DataReader对象n不同的Provider有使用不同的DataReadernADO.NET中最高效的得到数据的方法nSqlDataReadernSqlCommand.ExecuteReader()方法nSqlDataRead
16、er.Read()方法可以遍历结果集中的行nSqlDataReader按照当前行的列引索可得到每一列的数据,GetString(),GetBoolean(),GetInt16(),GetInt32(),GetDateTime(),GetDecimal(),GetDouble(),GetFload(),GetGuid()使用DataReader对象nDataReader对象用于从数据库中获取仅向前的的只读数据流。n由于在内存一次只存放一行数据,因此使用DataReader对象可提高应用程序的性能,大幅度减轻对内存的需求。nDataReader对象通过Command对象的ExecuteReader
17、()方法创建。关键代码示例nCommandDataReader.cs4. DataAdapter和DataSetn1)使用DataAdapter来填充DataSetn2)取得DataSet中的数据n3)修改DataSet中的数据n4)添加和删除行n5)在DataTable中查找数据n6)接受和拒绝更改n7)保存对DataSet的改变返回数据库DataAdapter对象和DataSet对象nDataAdapter对象用于从数据源中获取数据、填充DataSet中的表和约束并将对DataSet的更改提交回数据源。DataAdapter对象的SelectCommand、InsertCommand、Up
18、dateCommand和DeleteCommand属性都是Command对象。其中SelectCommand用来执行查询。其他的几个用于数据操作。nDataSet中可以包含任意数量的DataTable(数据表),且每个DataTable对应一个数据库中的数据表和视图。一般来说,一个对应DataTable对象的数据表就是一系列数据行和列的集合。DataTable会负责维护每一笔数据行保留它的初始状态和当前状态,以解决许多人同时访问的问题。DataAdapter对象n与Provider相关n与select,update,insert,delete命令进行互操作nSqlDataAdapternIns
19、ertCommand属性nUpdateCommand属性nDeleteCommand属性nSelectCommand属性nFill()方法需要一个DataSet类型的参数nUpdate()方法将DataSet中的变更提交到数据库当中,需要使用InsertCommand,UpdateCommand和DeleteCommand可以自动产生CommandnOleDbCommandBuilder cmdbld = new OleDbCommandBuilder( daAdapter );DataSet对象n独立于数据Store、Provider和Connectionn离线模型nTables属性包含了一个或多个DataTable对象nRelations属性可以包含一个或多个DataRelation对象n可以用DataAdapter对象来填充n可以与XML相互转换n将变更之后的DataSet提交到DataAdapter的Update()方法DataSet对象模型DataSet及相关对象nDataSetnDataTablenDataRownDataColumnn表之间的联系 Relationn约束DataTable对象nColumns属性包含了一个或多个DataColumn对象
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 防火门培训知识课件
- 救援运马具项目可行性研究报告
- 企业文化建设章程的法律要素
- 地热能热泵技术-第1篇-洞察及研究
- 2025年高考政治总复习主观题必背知识复习宝典
- 纺织工艺参数优化-洞察及研究
- 部队司机安全培训课件
- 四川省资阳市雁江区保和中学2024-2025学年九年级上学期期中考试化学试卷含答案
- 期中专题复习-语篇填空训练-2025-2026学年 译林版2024 英语八年级上册 解析卷
- 河南省商丘市永城市第三初级中学2025年统编版六年级下册小升初分班考试语文试卷(无答案)
- 部编小学语文单元作业设计五年级上册第二单元
- (完整版)量子信息与量子计算课件
- 业扩现场勘查技术方案
- 2010年铁路全套预算定额(电子版)
- 一年级上册道法教学计划
- 《牧羊少年奇幻之旅》作品介绍分享
- 创客教育课件
- 礼仪培训微笑礼仪
- 人类群星闪耀时
- 某部队副食品供货项目配送方案
- 中国地质大学(武汉)软件工程专业学位研究生实践手册解析
评论
0/150
提交评论