ADONET数据访问技术.ppt
《ADONET数据访问技术.ppt》由会员分享,可在线阅读,更多相关《ADONET数据访问技术.ppt(63页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、16.1 数据库开发基础16.2 使用ADO.NET16.3 ADO.NET综合应用16.4 实例:图书信息管理16.1.1 SQL Server 200516.1.1 SQL Server 2005SQL Server是一个全面的、集成的、端到端的数据解决方案,它为企业中的用户提供了一个安全、可靠和高效的平台,用于企业数据管理和商业智能应用。首先建立数据库之后添加表结构和为表添加列。最后可以直接为表添加数据。SQL全称是结构化查询语言(S Structured Q Query L Language),是数据库中使用的标准数据查询语言。目前,绝大多数流行的关系型数据库管理系统都采用了SQL语言
2、标准。虽然对SQL语句进行了再开发和扩展,但是包括Select、 Insert、Update、Delete、Create以及Drop在内的标准的SQL命令仍然可以被用来完成几乎所有的数据库操作。Insert操作用于向数据库表中插入记录。 INSERT INTO table (column ,column) VALUES (columnvalue ,columnvalue);下面语句是向BookInfo表中插入一行记录。INSERT INTO BookInfoVALUES (9787040074949, 数据库系统概论, 萨师煊, 高等教育出版社,28.0, 2000-2-1);Select操作
3、从一个或多个表中选取特定的行和列。因为查询和检索数据是数据库管理中最重要的功能,所以SELECT语句在SQL中是工作量最大的部分。SELECT语句的结果通常是生成另外一个表。 SELECT columns FROM tables ORDERE BY column ASC|DESC WHERE predicates下面语句将查询BookInfo表中作者谭浩强的书。SELECT NameFROM BookInfoWHERE Author= 谭浩强UPDATE语句允许用户在已知的表中对现有的行进行修改。例如,下面语句是一个单行更新。UPDATE BookInfoSET Name= C语言程序设计(第
4、三版) WHERE ISBN=9787302108535DELETE语句用来删除已知表中的行。如同UPDATE语句中一样,所有满足WHERE子句中条件的行都将被删除。由于SQL中没有UNDO语句或是“你确认删除吗?”之类的警告,在执行这条语句时千万要小心。例如,下面语句将删除所有清华出版社的书的信息。DELETE FROM BookInfoWHERE press= 清华出版社ADO.NET目前版本为3.0,用于访问和操作数据的两个主要组件是.NET Framework数据提供程序和DataSet。ADO.NET用不同的数据提供者来操作不同数据源数据提供者实际上是ADO.NET提供的一组封装好的
5、类,用于操作不同类型的数据库系统。我们可以把这些数据提供者想象成我们程序与数据库之间的一座桥梁,我们的程序通过它和数据库打交道。SQL Server数据提供者:为操作SQL Server数据库(SQL Server 7.0及之后版本)提供完善的支持。OLE DB数据提供者:为所有支持OLE DB驱动的数据源提供支持,它可以支持SQL Server 7.0之前的版本。Oracle数据提供者:为操作Oracle数据库(8i及之后版本)提供完善的支持。ODBC数据提供者:为操作Access数据库及其他支持ODBC驱动的数据源提供支持。命名空间描述System.Data包含columns, relat
6、ions, tables, datasets, rows, views和constraints等这些主要的数据容器类System.Data.Common主要包含ADO.NET中的基类,大多数的抽象类,以及ADO.NET中的一些核心函数。并实现了System.Data中的部分接口。不同的数据驱动程序从这些类中继承并构建它们自己的功能(比如DbConnection,DbCommand等)System.OleDb包含用于连接提供OLE DB驱动的数据源的所有累,包括OleDbCommand, OleDbConnection, OleDbDataReader, 和 OleDbDataAdapter。这
7、些类支持大多数的OLE DB数据源,但是不能支持那些使用了OLE DB2.5 版接口的数据源System.Data.SqlClient包含了连接SQL Server数据库的类,包括SqlDbCommand, S q l D b C o n n e c t i o n , S q l D a t a R e a d e r , a n d SqlDBDataAdapterSystem.Data.OracleClient包含了连接Oracle数据库(8i或之后版本)所需要的类,包 括 O r a c l e C o m m a n d , O r a c l e C o n n e c t i o
8、 n , OracleDataReader, 和 OracleDataAdapterSystem.Data.Odbc包 含 连 接 O D B C 数 据 库 所 需 的 类 , 这 些 类 包 括 :OdbcCommand, OdbcConnection,OdbcDataReader, 和 OdbcDataAdapterSystem.Data.SqlTypes包含与SQL Server中的数据类型相对应的数据结构,这些数据类型并不强制使用,如果使用了标准的.NET数据类型话,系统会自动将他们转化成匹配的Sql 数据类型我们需要根据所使用数据库系统的不同,选择相对应的数据提供者,并在代码中包含
9、相应的命名空间。ADO.NET中使用Connection类完成数据库的连接。只有建立了连接之后,才能对数据库表中的记录进行添加、删除、修改、读取之类的功能。要建立一个数据库连接,首先需要提供一个连接字符串。连接字符串的格式是一个以分号为界,划分键值参数对的列表。这个串中包含了数据库的位置,想要连接的数据库的名称以及数据库的身份验证方式等众多的信息。必须提供的信息有以下3个。 数据库所在服务器的位置(Data Source)。 数据库的名称(Initial Catalog)。 数据库的身份验证方式(Windows集成验证或者是SQL Server身份验证)。下面是一个用于连接16.1.2节创建的
10、SQL Server数据库VBNET2008的连接字符串,采用Windows集成验证的方式。 Dim connectionString As String= Data Source=localhost; Initial Catalog= VBNET2008;Integrated Security=SSPI;关于更多的数据库连接字符串,可参考http:/。连接字符串确定后,需要将其传递给Connection类的实例的ConnectionString属性,然后调用其Open方法打开该连接。这里以SqlConnection类为例。1 Dim connectionString As String =
11、Data Source=server;Initial Catalog=VBNET2008; Integrated Security=SSPI;2 Dim conn As SqlConnection= new SqlConnection( )3 conn.ConnectionString = cString4 conn.Open( )如果是Windows窗体应用程序,则需要先添加该配置文件。单击菜单栏中的【项目】【添加新项】,打开【添加新项-WindowsApplication1】窗口,选择常规类别中的应用程序配置文件。在app.configue文件中加入一个connectionStrings标
12、签,代码如下。1 2 3 4 5 6 7 可以通过ConfigurationManager.ConnectionStrings集合通过名字将其取出。使用该集合,首先要添加System.Configuration命名空间的引用。下面代码通过ConfigurationManager.ConnectionStrings集合取出了连接字符串。Dim conn string As String =ConfigurationManager.ConnectionStrings(MyConnectionString).ConnectionString如果是ASP.NET项目,则可以将数据库连接字符串写入Web
13、.Config文件。方式与Windows窗体应用程序中的app.config文件类似,添加一个connectionstring标签即可。在需要用到连接字符串的时候,可以从WebConfigurationManager.ConnectionStrings集合中通过名字将它取出来。要使用这个集合的话,同样需要在项目中添加对System.Configuration命名空间的引用。.NET中执行数据库操作是通过Command类来完成的。Command类是一个执行SQL语句和存储过程的类。通过它,我们可以实现对数据的添加、删除、更新、查询等各种操作。首先要确定Command的种类,是SqlCommand
14、,OracleCommand,还是其他类型。在确定了Command类型之后,需要把为它指定一个Connection。另外需要指定CommandType 和CommandText。这3项信息可以在创建Command对象的时候以参数的形式传到Command的构造函数中,也可以通过属性的方式进行设置。需要说明的是,CommandText既可以是SQL语句,也可以是存储过程,也可以是数据表的名字。使用不同种类的CommandText,需要设置相应的CommandType。类型描述CommandType.TextCommandType的默认值。它指示执行的是SQL语句。为CommandText指定SQL
15、字符串CommandType.StoredProcedure指 示 执 行 的 是 存 储 过 程 , 需 要 为CommandText指定一个存储过程的名称CommandType.TableDirect指示执行的是得到某个数据表中的所有数据。此时需要为CommandText指定一个数据表名称。(通常情况下还是直接写SQL语句来实现这个功能比较可靠)下面的代码演示了如何使用SqlCommand对象执行一个SQL查询语句,采用了属性设置的方式指定了必须的3项信息,代码如下。1 Dim cmd As SqlCommand = new SqlCommand( )2 cmd.Connection =
16、con3 cmd.CommandType = CommandType.Text4 cmd.CommandText = SELECT * FROM BookInfo“事实上,上面代码还可以写成更简洁的形式,如下。Dim cmd As SqlCommand = new SqlCommand(SELECT * FROM BookInfo , con)如果需要执行存储过程,可以使用下面这种方式。Dim cmd As SqlCommand = new SqlCommand(GetBooks, con)cmd.CommandType = CommandType.StoredProcedure至此,我们只是
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- ADONET 数据 访问 技术
限制150内