ADONet数据库存取

上传人:ahu****ng1 文档编号:146097480 上传时间:2020-09-26 格式:PPTX 页数:52 大小:556.24KB
返回 下载 相关 举报
ADONet数据库存取_第1页
第1页 / 共52页
ADONet数据库存取_第2页
第2页 / 共52页
ADONet数据库存取_第3页
第3页 / 共52页
ADONet数据库存取_第4页
第4页 / 共52页
ADONet数据库存取_第5页
第5页 / 共52页
点击查看更多>>
资源描述

《ADONet数据库存取》由会员分享,可在线阅读,更多相关《ADONet数据库存取(52页珍藏版)》请在金锄头文库上搜索。

1、第13章 ADO.Net数据库存取,本讲内容,ADO.NET概述 Connection和Command DataReader DataAdapter和DataSet 建立数据存取的实用库,1. ADO.NET概述,RDBMS基本概念,在表中存储数据的数据库,例如Microsoft SQL Server,Microsoft Access等 表具有数据列和数据行 范式,数据标准化 表之间使用外键约束相互关联 支持数据操纵语言(DML) SELECT,INSERT,UPDATE和DELETE,实体关系图,ADO.NET提供标准的CRUD接口,CRUDCreate Retrieve Update an

2、d Delete Microsoft .NET中ADO.NET来提供这些功能 ADO.NET中托管的Provider 调用标准的CRUD语句来访问数据库 ADO.NET将不同的Provider的数据库访问方式抽象出来提供统一的访问接口 System.Data名称空间,ADO.NET技术的发展,ODBC DAO ADO ADO.NET,ADO.NET的层次,Managed Code,ADO,Managed Provider,Data Store,ADO.NET中的数据访问层,Provider,Provider是一些托管的应用程序集 包含了对特定数据元的访问代码 SQL(7 +) provider

3、: System.Data.SqlClient名称空间 OLE/DB provider System.Data.OleDb ODBC provider System.Data.Odbc Oracle provider System.Data.OracleClient,选择 .NET 数据提供程序,ADO.NET体系结构,.NET 数据程序的四个核心对象,访问数据的两种基本方式,方式1:DataAdapter及DataSet 方式2:Command及DataReader 它们都要使用Connection及Command 方式1可以自动建立Command对象,适合于“离线”处理 方式2适合于只读数

4、据,效率较高,2. Connection和Command,Connection对象,对于不同的Data Provider有不同Connection对象 System.Data.SqlClient SqlConnection Open()方法SQL Provider使用它来与SQL Server 7+数据库进行连接 ConnectionString属性指定连接字符串参数,Command对象,SqlCommand对象 CommandText属性指定需要执行的DML命令,来操纵数据 Connection属性为SqlCommand对象指定SqlConnection对象 SqlParameters属性(

5、Collection)包含了一组Command对象的参数 ExecuteNonQuery()方法 ExecuteScalar()方法从DML语句中只返回一个单独的值,返回结果集中的第一行第一列 ExecuteReader()方法返回一个SqlDataReader,SQL Server导入的命名空间,语法如下: 连接SQL Server的连接串的书写格式 string connString=server=localhost;database=pubs;uid=sa;pwd=; SqlConnection Conn = new SqlConnection(connString);,使用Connec

6、tion对象,与数据库的所有通信都要通过一个打开的连接来进行。在对一个数据库进行数据的插入和读取之前,必须先打开与这个数据库的连接。 这种打开和关闭一个连接的操作与打电话的过程有相似之处。在你能够与SQL Sever进行通信之前,你必须先建立连接。,连接字符串,(1)连接Access数据库,使用Microsoft.Jet.OLEDB.4.0 Provider=Microsoft.Jet.OLEDB.4.0;Password=xxx;User ID=Admin; Data Source=D:CsExamplech10BIBLIO.MDB (2)连接Sql Server数据库,使用OLE DB P

7、rovider Provider=SQLOLEDB;Data Source=MyServer;Initial Catalog=MyDataBase; User Id=MyUser;Password=MyPassword (3)连接Sql Server数据库,使用SqlServer Provider data source=MyServer;initial catalog=MyDataBase; user id=MyUser;password=MyPassword (4)连接Oracle数据库,使用OLE DB Provider Provider=MSDAORA.1;DataSource=ora

8、cle_db;User ID=scott;Password=tiger (5)连接Oracle数据库,使用OLE DB Provider User Id=scott;Password=tiger;Data Source=,使用Command对象,建立数据连接以后,可以利用Command对象来执行命令并从数据源返回结果Command对象可以用Command的构造函数来创建 ExecuteReader ExecuteScalar ExecuteNonQuery,使用ExecuteReader方法,ExecuteReader方法返回一个DataReader对象。DataReader对象是一个仅向前的

9、只读的数据流。 一般ExecuteReader方法都执行SQL语句中的select语句。首先介绍Select语句的三种基本形式。,使用ExecuteScalar方法,ExecuteScalar方法返回单个值,如求和、总行数等SQL 语句的聚合函数。常用的SQL的聚合函数如表,常用的SQL的聚合函数,使用ExecuteNonQuery方法,ExcuteNonQuery方法用于执行不需要返回结果的命令,如插入、删除和更新等操作下面简单介绍数据SQL 语句中的数据操作语言SQL语言基本分成三大体系: 数据定义语言DDL:用来定义数据 数据查询语言DQL:数据检索语言 数据操作语言DML:包括INSE

10、RT,UPDATE和DELETE,使用存储过程,用Command对象来使用存储过程 使用存储过程 sqlCmd.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”: ;

11、使用参数比直接用字符串相加更安全,更清晰 cmd.CommandText = “Insert into Nataions(CName) Values(“ + xxx+ “)”;,3. Command和DataReader,1)使用Command来获取DataReader 2)使用Command来获取一个数据 3)直接使用数据库命令,DataReader对象,不同的Provider有使用不同的DataReader ADO.NET中最高效的得到数据的方法 SqlDataReader SqlCommand.ExecuteReader()方法 SqlDataReader.Read()方法可以遍历结果集

12、中的行 SqlDataReader按照当前行的列引索可得到每一列的数据,GetString(),GetBoolean(),GetInt16(),GetInt32(),GetDateTime(),GetDecimal(),GetDouble(),GetFload(),GetGuid(),使用DataReader对象,DataReader对象用于从数据库中获取仅向前的的只读数据流。 由于在内存一次只存放一行数据,因此使用DataReader对象可提高应用程序的性能,大幅度减轻对内存的需求。 DataReader对象通过Command对象的ExecuteReader()方法创建。,关键代码示例,Co

13、mmandDataReader.cs,4. DataAdapter和DataSet,1)使用DataAdapter来填充DataSet 2)取得DataSet中的数据 3)修改DataSet中的数据 4)添加和删除行 5)在DataTable中查找数据 6)接受和拒绝更改 7)保存对DataSet的改变返回数据库,DataAdapter对象和DataSet对象,DataAdapter对象用于从数据源中获取数据、填充DataSet中的表和约束并将对DataSet的更改提交回数据源。DataAdapter对象的SelectCommand、InsertCommand、UpdateCommand和De

14、leteCommand属性都是Command对象。其中SelectCommand用来执行查询。其他的几个用于数据操作。 DataSet中可以包含任意数量的DataTable(数据表),且每个DataTable对应一个数据库中的数据表和视图。一般来说,一个对应DataTable对象的数据表就是一系列数据行和列的集合。DataTable会负责维护每一笔数据行保留它的初始状态和当前状态,以解决许多人同时访问的问题。,DataAdapter对象,与Provider相关 与select,update,insert,delete命令进行互操作 SqlDataAdapter InsertCommand属性

15、UpdateCommand属性 DeleteCommand属性 SelectCommand属性 Fill()方法需要一个DataSet类型的参数 Update()方法将DataSet中的变更提交到数据库当中,需要使用InsertCommand,UpdateCommand和DeleteCommand,可以自动产生Command,OleDbCommandBuilder cmdbld = new OleDbCommandBuilder( daAdapter );,DataSet对象,独立于数据Store、Provider和Connection 离线模型 Tables属性包含了一个或多个DataTab

16、le对象 Relations属性可以包含一个或多个DataRelation对象 可以用DataAdapter对象来填充 可以与XML相互转换 将变更之后的DataSet提交到DataAdapter的Update()方法,DataSet对象模型,DataSet及相关对象,DataSet DataTable DataRow DataColumn 表之间的联系 Relation 约束,DataTable对象,Columns属性包含了一个或多个DataColumn对象 Rows属性包含了一个或多个DataRow对象 Contraints属性包含了一个或多个Constraint对象 DataTable中最多能够包含16,777,216行数据,关键代码示例,ADO.NET和XML,DataSet可以直接的串列化为XML,同时XML也可以直接的反串列化为DataSet对象 ReadXml()方法 WriteXml()方法 SqlCommand.ExecuteXmlReader()返回一个XmlReader对象,使用事务,myTrans = myConnection.BeginTran

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 商业/管理/HR > 管理学资料

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号