第13章ADONet数据库存取

上传人:沈*** 文档编号:173774890 上传时间:2022-12-12 格式:PPT 页数:51 大小:438.03KB
收藏 版权申诉 举报 下载
第13章ADONet数据库存取_第1页
第1页 / 共51页
第13章ADONet数据库存取_第2页
第2页 / 共51页
第13章ADONet数据库存取_第3页
第3页 / 共51页
资源描述:

《第13章ADONet数据库存取》由会员分享,可在线阅读,更多相关《第13章ADONet数据库存取(51页珍藏版)》请在装配图网上搜索。

1、 第13章 ADO.Net数据库存取唐大仕http:/本讲内容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 Updat

2、e and DeletenMicrosoft.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 供应程序 OL

3、E DB.NET 供应程序 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 Serve

4、r 7.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属性(Colle

8、ction)包含了一组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);使用Connection对象

9、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 ProviderP r

10、 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 o v i d e r

11、=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使用ExecuteReader方法nExec

12、uteReader方法返回一个DataReader对象。DataReader对象是一个仅向前的只读的数据流。n一般ExecuteReader方法都执行SQL语句中的select语句。首先介绍Select语句的三种基本形式。使用ExecuteScalar方法nExecuteScalar方法返回单个值,如求和、总行数等SQL 语句的聚合函数。常用的SQL的聚合函数如表常用的SQL的聚合函数函数返回数值AVG(表达式)返回表达式中所有值的平均值。仅用于数字列并自动忽略 null 值。COUNT(表达式)返回表达式中非 null 值的数量。可用于数字和字符列。COUNT(*)返回表中的行数(包括有 n

13、ull 值的行)。MAX(表达式)返回表达式中的最大值,忽略 null 值。可用于数字、字符和日期时间列。MIN(表达式)返回表达式中最小值,忽略 null 值。可用于数字、字符和日期时间列。SUM(表达式)返回表达式中所有值的总和,忽略 null 值。仅用于数字列。使用ExecuteNonQuery方法nExcuteNonQuery方法用于执行不需要返回结果的命令,如插入、删除和更新等操作下面简单介绍数据SQL 语句中的数据操作语言SQL语言基本分成三大体系:n数据定义语言DDL:用来定义数据n数据查询语言DQL:数据检索语言n数据操作语言DML:包括INSERT,UPDATE和DELETE

14、使用存储过程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()方法nSqlDataReader.Read()方法可以遍历结果集中的行nSqlDataReader按照当前行的列引索可得到

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

17、和DataSetn1)使用DataAdapter来填充DataSetn2)取得DataSet中的数据n3)修改DataSet中的数据n4)添加和删除行n5)在DataTable中查找数据n6)接受和拒绝更改n7)保存对DataSet的改变返回数据库DataAdapter对象和DataSet对象nDataAdapter对象用于从数据源中获取数据、填充DataSet中的表和约束并将对DataSet的更改提交回数据源。DataAdapter对象的SelectCommand、InsertCommand、UpdateCommand和DeleteCommand属性都是Command对象。其中SelectC

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

19、ectCommand属性nFill()方法需要一个DataSet类型的参数nUpdate()方法将DataSet中的变更提交到数据库当中,需要使用InsertCommand,UpdateCommand和DeleteCommand可以自动产生CommandnOleDbCommandBuilder cmdbld=new OleDbCommandBuilder(daAdapter);DataSet对象n独立于数据Store、Provider和Connectionn离线模型nTables属性包含了一个或多个DataTable对象nRelations属性可以包含一个或多个DataRelation对象n可

20、以用DataAdapter对象来填充n可以与XML相互转换n将变更之后的DataSet提交到DataAdapter的Update()方法DataSet对象模型DataSet及相关对象nDataSetnDataTablenDataRownDataColumnn表之间的联系 Relationn约束DataTable对象nColumns属性包含了一个或多个DataColumn对象nRows属性包含了一个或多个DataRow对象nContraints属性包含了一个或多个Constraint对象nDataTable中最多能够包含16,777,216行数据关键代码示例ADO.NET和XMLnDataSet

21、可以直接的串列化为XML,同时XML也可以直接的反串列化为DataSet对象nReadXml()方法nWriteXml()方法nSqlCommand.ExecuteXmlReader()返回一个XmlReader对象使用事务nmyTrans=myConnection.BeginTransaction();nmyCommand.Transaction=trans;nmyCommand.ExecuteNonQuery();nmyTrans.Commit();nmyTrans.Rollback();Transaction.cs5.建立自己的实用库nMyDBHelper.csMicrosoft Dat

22、a Access Application Blockn包含经过了优化的调用SQL Server数据库中存储过程和SQL语句的代码n可以返回SqlDataReader,DataSet和XmlReader对象n可以降低开发成本,减少需要编写、测试和维护的代码n可以从微软的网站上下载C#和VB.NET的源代码和开发文档nhttp:/ nhttp:/ 参见Northwind子目录Microsoft Data Access Application BlockC#的开源数据库nSharpHSQLnMinosse Relational DataBase Systemncsharp-sqlite6.界面及数据绑定nDataGridn.DataSource数据库应用n三层架构n用户界面层UIn业务逻辑层BLLn数据访问层DALnOR MappingnLinq to Sql问题与讨论

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

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!