您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 管理学资料 > ADONet数据库存取
第13章ADO.Net数据库存取唐大仕dstang2000@263.net本讲内容ADO.NET概述Connection和CommandDataReaderDataAdapter和DataSet建立数据存取的实用库1.ADO.NET概述RDBMS基本概念在表中存储数据的数据库,例如MicrosoftSQLServer,MicrosoftAccess等表具有数据列和数据行范式,数据标准化表之间使用外键约束相互关联支持数据操纵语言(DML)SELECT,INSERT,UPDATE和DELETE实体关系图ADO.NET提供标准的CRUD接口CRUD——CreateRetrieveUpdateandDeleteMicrosoft.NET中ADO.NET来提供这些功能ADO.NET中托管的Provider调用标准的CRUD语句来访问数据库ADO.NET将不同的Provider的数据库访问方式抽象出来提供统一的访问接口System.Data名称空间ADO.NET技术的发展ODBCDAOADOADO.NETADO.NET的层次ManagedCodeADOManagedProviderDataStoreADO.NET中的数据访问层源代码ADO.NETDataAdapter或者Command对象Connection对象SQL供应程序OLEDB.NET供应程序OLEDB接口SQLSever数据库ProviderProvider是一些托管的应用程序集包含了对特定数据元的访问代码SQL(7+)provider:System.Data.SqlClient名称空间OLE/DBproviderSystem.Data.OleDbODBCproviderSystem.Data.OdbcOracleproviderSystem.Data.OracleClient选择.NET数据提供程序提供程序注释SQLServer.NETNET数据提供程序建议用于使用MicrosoftSQLServer7.0或更高版本的中间层应用程序。OLEDB.NET对于MicrosoftSQLServer版本6.5和较早版本,必须将用于SQLServer的OLEDB提供程序与OLEDB.NET数据提供程序一起使用对象OLEDB供应程序System.Data.OleDb名字空间SQL供应程序System.Data.SqlClient名字空间DataAdapterSystem.Data.OleDb.OleDbDataAdapterSystem.Data.SqlClient.SqlDataAdapterConnectionSystem.Data.OleDb.OleDbConnectionSystem.Data.SqlClient.SqlConnectionCommandSystem.Data.OleDb.OleDbCommandSystem.Data.SqlClient.SqlCommandDataReaderSystem.Data.OleDb.OleDbDataReaderSystem.Data.SqlClient.SqlDataReaderADO.NET体系结构.NET数据程序的四个核心对象对象说明Connection建立与特定数据源的连接。Command对数据源执行命令。公开Parameters,并且可以从Connection在Transaction的范围内执行。DataReader从数据源中读取只进且只读的数据流。DataAdapter用数据源填充DataSet并解析更新。访问数据的两种基本方式方式1:DataAdapter及DataSet方式2:Command及DataReader它们都要使用Connection及Command方式1可以自动建立Command对象,适合于“离线”处理方式2适合于只读数据,效率较高2.Connection和CommandConnection对象对于不同的DataProvider有不同Connection对象System.Data.SqlClientSqlConnectionOpen()方法——SQLProvider使用它来与SQLServer7+数据库进行连接ConnectionString属性——指定连接字符串参数Command对象SqlCommand对象CommandText属性——指定需要执行的DML命令,来操纵数据Connection属性——为SqlCommand对象指定SqlConnection对象SqlParameters属性(Collection)——包含了一组Command对象的参数ExecuteNonQuery()方法ExecuteScalar()方法——从DML语句中只返回一个单独的值,返回结果集中的第一行第一列ExecuteReader()方法——返回一个SqlDataReaderSQLServer导入的命名空间语法如下:%@ImportNamespace=System.Data%%@ImportNamespace=System.Data.SqlClient%连接SQLServer的连接串的书写格式stringconnString=server=localhost;database=pubs;uid=sa;pwd=’’'';SqlConnectionConn=newSqlConnection(connString);使用Connection对象与数据库的所有通信都要通过一个打开的连接来进行。在对一个数据库进行数据的插入和读取之前,必须先打开与这个数据库的连接。这种打开和关闭一个连接的操作与打电话的过程有相似之处。在你能够与SQLSever进行通信之前,你必须先建立连接。连接字符串(1)连接Access数据库,使用Microsoft.Jet.OLEDB.4.0Provider=Microsoft.Jet.OLEDB.4.0;Password=xxx;UserID=Admin;DataSource=D:\CsExample\ch10\BIBLIO.MDB(2)连接SqlServer数据库,使用OLEDBProviderProvider=SQLOLEDB;DataSource=MyServer;InitialCatalog=MyDataBase;UserId=MyUser;Password=MyPassword(3)连接SqlServer数据库,使用SqlServerProviderdatasource=MyServer;initialcatalog=MyDataBase;userid=MyUser;password=MyPassword(4)连接Oracle数据库,使用OLEDBProviderProvider=MSDAORA.1;DataSource=oracle_db;UserID=scott;Password=tiger(5)连接Oracle数据库,使用OLEDBProviderUserId=scott;Password=tiger;DataSource=使用Command对象建立数据连接以后,可以利用Command对象来执行命令并从数据源返回结果.Command对象可以用Command的构造函数来创建ExecuteReaderExecuteScalarExecuteNonQuery使用ExecuteReader方法ExecuteReader方法返回一个DataReader对象。DataReader对象是一个仅向前的只读的数据流。一般ExecuteReader方法都执行SQL语句中的select语句。首先介绍Select语句的三种基本形式。使用ExecuteScalar方法ExecuteScalar方法返回单个值,如求和、总行数等SQL语句的聚合函数。常用的SQL的聚合函数如表常用的SQL的聚合函数函数返回数值AVG(表达式)返回表达式中所有值的平均值。仅用于数字列并自动忽略null值。COUNT(表达式)返回表达式中非null值的数量。可用于数字和字符列。COUNT(*)返回表中的行数(包括有null值的行)。MAX(表达式)返回表达式中的最大值,忽略null值。可用于数字、字符和日期时间列。MIN(表达式)返回表达式中最小值,忽略null值。可用于数字、字符和日期时间列。SUM(表达式)返回表达式中所有值的总和,忽略null值。仅用于数字列。使用ExecuteNonQuery方法ExcuteNonQuery方法用于执行不需要返回结果的命令,如插入、删除和更新等操作.下面简单介绍数据SQL语句中的数据操作语言.SQL语言基本分成三大体系:数据定义语言DDL:用来定义数据数据查询语言DQL:数据检索语言数据操作语言DML:包括INSERT,UPDATE和DELETE使用存储过程用Command对象来使用存储过程使用存储过程sqlCmd.CommandType=CommandType.StoredProcedure;使用参数cmd.CommandText=INSERTINTONations(CName,EName,FName)VALUES(@CName,@EName,@FName);cmd.Connection=this.sqlConnection1;cmd.Parameters.Add(@CName,SqlDbType.VarChar,60).Value=“aaaaaa”:;使用参数比直接用字符串相加更安全,更清晰cmd.CommandText=“InsertintoNataions(CName)Values(‘“+xxx+“’)”;3.Command和DataReader1)使用Command来获取DataReader2)使用Command来获取一个数据3)直接使用数据库命令DataReader对象不同的Provider有使用不同的DataReaderADO.NET中最高效的得到数据的方法SqlDataReaderSqlCommand.ExecuteReader()方法SqlDataReader.Read()方法可以遍历结果集中的行SqlDataReader按照当前行的列引索可得到每一列的数据,GetString(),GetBoolean(),GetInt16(),GetInt32(),GetDateTime(),GetDecimal(),GetDouble(),GetFload(),GetGuid()使用DataReader对象DataReader对象用于从数据库中获取仅向前的的只读数据流。由于在内存一次只存放一行数据,因此使用DataReader对象可提高应用程序的性能,大幅度减轻对内存的需求。DataReader对象通过Command对象的ExecuteReader()方法创建。关键代码示例CommandDataReader.cs4.DataAdapter和DataSet1)使用DataAdapter来填充DataSet2)取得DataSet中的数据3)修改DataSet中的数据4)添加和删除行5)在DataTable中查找数据6)接受和拒绝更改7)保存对DataSet的改变返回数据库DataAdapter对象和DataSet对象DataAdapter对象用于从数据源中获取数据、填充DataSet中的表和约束并将对DataSet的更改提交回数据源。DataAdapter对象的SelectCommand、InsertCommand、UpdateCommand和DeleteCommand属性都是Command对象。其中SelectCommand用来执行查询。其他的几个用于数据操作。DataSet中可以包含任意数量的DataTable(数据表),且每个DataTable对应一个
本文标题:ADONet数据库存取
链接地址:https://www.777doc.com/doc-1303684 .html