第13章ADONet数据库存取.ppt

上传人:sccc 文档编号:4750688 上传时间:2023-05-13 格式:PPT 页数:51 大小:438.02KB
返回 下载 相关 举报
第13章ADONet数据库存取.ppt_第1页
第1页 / 共51页
第13章ADONet数据库存取.ppt_第2页
第2页 / 共51页
第13章ADONet数据库存取.ppt_第3页
第3页 / 共51页
第13章ADONet数据库存取.ppt_第4页
第4页 / 共51页
第13章ADONet数据库存取.ppt_第5页
第5页 / 共51页
点击查看更多>>
资源描述

《第13章ADONet数据库存取.ppt》由会员分享,可在线阅读,更多相关《第13章ADONet数据库存取.ppt(51页珍藏版)》请在三一办公上搜索。

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

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

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

4、nd,Connection对象,对于不同的Data Provider有不同Connection对象System.Data.SqlClientSqlConnectionOpen()方法SQL Provider使用它来与SQL Server 7+数据库进行连接ConnectionString属性指定连接字符串参数,Command对象,SqlCommand对象CommandText属性指定需要执行的DML命令,来操纵数据Connection属性为SqlCommand对象指定SqlConnection对象SqlParameters属性(Collection)包含了一组Command对象的参数Execu

5、teNonQuery()方法ExecuteScalar()方法从DML语句中只返回一个单独的值,返回结果集中的第一行第一列ExecuteReader()方法返回一个SqlDataReader,SQL Server导入的命名空间,语法如下:连接SQL Server的连接串的书写格式 string connString=server=localhost;database=pubs;uid=sa;pwd=;SqlConnection Conn=new SqlConnection(connString);,使用Connection对象,与数据库的所有通信都要通过一个打开的连接来进行。在对一个数据库进行

6、数据的插入和读取之前,必须先打开与这个数据库的连接。这种打开和关闭一个连接的操作与打电话的过程有相似之处。在你能够与SQL Sever进行通信之前,你必须先建立连接。,连接字符串,(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 ProviderProvider=SQLOLEDB;Data Source=MyServe

7、r;Initial 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 ProviderProvider=MSDAORA.1;DataSource=oracle_db;User ID=scott;Password=tiger(5)连接Oracle数据库,使

8、用OLE DB ProviderUser Id=scott;Password=tiger;Data Source=,使用Command对象,建立数据连接以后,可以利用Command对象来执行命令并从数据源返回结果Command对象可以用Command的构造函数来创建ExecuteReaderExecuteScalarExecuteNonQuery,使用ExecuteReader方法,ExecuteReader方法返回一个DataReader对象。DataReader对象是一个仅向前的只读的数据流。一般ExecuteReader方法都执行SQL语句中的select语句。首先介绍Select语句的

9、三种基本形式。,使用ExecuteScalar方法,ExecuteScalar方法返回单个值,如求和、总行数等SQL 语句的聚合函数。常用的SQL的聚合函数如表,常用的SQL的聚合函数,使用ExecuteNonQuery方法,ExcuteNonQuery方法用于执行不需要返回结果的命令,如插入、删除和更新等操作下面简单介绍数据SQL 语句中的数据操作语言SQL语言基本分成三大体系:数据定义语言DDL:用来定义数据数据查询语言DQL:数据检索语言数据操作语言DML:包括INSERT,UPDATE和DELETE,使用存储过程,用Command对象来使用存储过程使用存储过程sqlCmd.Comman

10、dType=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”:;使用参数比直接用字符串相加更安全,更清晰cmd.CommandText=“Insert into Nataions(CName)Values(“+xxx+“)”;,

11、3.Command和DataReader,1)使用Command来获取DataReader2)使用Command来获取一个数据3)直接使用数据库命令,DataReader对象,不同的Provider有使用不同的DataReaderADO.NET中最高效的得到数据的方法SqlDataReaderSqlCommand.ExecuteReader()方法SqlDataReader.Read()方法可以遍历结果集中的行SqlDataReader按照当前行的列引索可得到每一列的数据,GetString(),GetBoolean(),GetInt16(),GetInt32(),GetDateTime(),

12、GetDecimal(),GetDouble(),GetFload(),GetGuid(),使用DataReader对象,DataReader对象用于从数据库中获取仅向前的的只读数据流。由于在内存一次只存放一行数据,因此使用DataReader对象可提高应用程序的性能,大幅度减轻对内存的需求。DataReader对象通过Command对象的ExecuteReader()方法创建。,关键代码示例,CommandDataReader.cs,4.DataAdapter和DataSet,1)使用DataAdapter来填充DataSet2)取得DataSet中的数据3)修改DataSet中的数据4)添

13、加和删除行5)在DataTable中查找数据6)接受和拒绝更改7)保存对DataSet的改变返回数据库,DataAdapter对象和DataSet对象,DataAdapter对象用于从数据源中获取数据、填充DataSet中的表和约束并将对DataSet的更改提交回数据源。DataAdapter对象的SelectCommand、InsertCommand、UpdateCommand和DeleteCommand属性都是Command对象。其中SelectCommand用来执行查询。其他的几个用于数据操作。DataSet中可以包含任意数量的DataTable(数据表),且每个DataTable对应一

14、个数据库中的数据表和视图。一般来说,一个对应DataTable对象的数据表就是一系列数据行和列的集合。DataTable会负责维护每一笔数据行保留它的初始状态和当前状态,以解决许多人同时访问的问题。,DataAdapter对象,与Provider相关与select,update,insert,delete命令进行互操作SqlDataAdapterInsertCommand属性UpdateCommand属性DeleteCommand属性SelectCommand属性Fill()方法需要一个DataSet类型的参数Update()方法将DataSet中的变更提交到数据库当中,需要使用InsertC

15、ommand,UpdateCommand和DeleteCommand,可以自动产生Command,OleDbCommandBuilder cmdbld=new OleDbCommandBuilder(daAdapter);,DataSet对象,独立于数据Store、Provider和Connection离线模型Tables属性包含了一个或多个DataTable对象Relations属性可以包含一个或多个DataRelation对象可以用DataAdapter对象来填充可以与XML相互转换将变更之后的DataSet提交到DataAdapter的Update()方法,DataSet对象模型,Dat

16、aSet及相关对象,DataSetDataTableDataRowDataColumn表之间的联系 Relation约束,DataTable对象,Columns属性包含了一个或多个DataColumn对象Rows属性包含了一个或多个DataRow对象Contraints属性包含了一个或多个Constraint对象DataTable中最多能够包含16,777,216行数据,关键代码示例,ADO.NET和XML,DataSet可以直接的串列化为XML,同时XML也可以直接的反串列化为DataSet对象ReadXml()方法WriteXml()方法SqlCommand.ExecuteXmlReade

17、r()返回一个XmlReader对象,使用事务,myTrans=myConnection.BeginTransaction();myCommand.Transaction=trans;myCommand.ExecuteNonQuery();myTrans.Commit();myTrans.Rollback();,Transaction.cs,5.建立自己的实用库,MyDBHelper.cs,Microsoft Data Access Application Block,包含经过了优化的调用SQL Server数据库中存储过程和SQL语句的代码可以返回SqlDataReader,DataSet和XmlReader对象可以降低开发成本,减少需要编写、测试和维护的代码可以从微软的网站上下载C#和VB.NET的源代码和开发文档http:/http:/,参见Northwind子目录,Microsoft Data Access Application Block,C#的开源数据库,SharpHSQLMinosse Relational DataBase Systemcsharp-sqlite,6.界面及数据绑定,DataGrid.DataSource,数据库应用,三层架构用户界面层UI业务逻辑层BLL数据访问层DALOR MappingLinq to Sql,问题与讨论,

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 建筑/施工/环境 > 农业报告


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号