《SQL Server编程访问技术(20110601)》由会员分享,可在线阅读,更多相关《SQL Server编程访问技术(20110601)(34页珍藏版)》请在金锄头文库上搜索。
1、学习情境7 SQL Server编程访问技术,情境引入,在.NET环境下利用C#语言编写应用程序,则需要特定的数据库访问技术,如ODBC、OLEDB、DAO、ADO.NET,其中, ADO.NET 是目前流行的.NET 平台上的数据库访问技术。,本情境学习目标,掌握ADO.NET的基本体系结构掌握ADO.NET对常见数据库进行访问的方法掌握在C#中进行一般的数据库调用方法,本情境工作任务,ADO.NET数据提供程序及使用ADO.NET数据集及应用数据绑定,工作任务1 ADO.NET数据提供程序及使用,一、相关资讯,1、ADO.NET概述 ADO.NET(ActiveX Data Objects
2、.NET)是微软公司开发的访问数据库的新接口,其实质是一组向.NET程序员公开数据访问服务的类,为创建分布式数据共享应用程序提供了一组丰富的组件。 它具有对关系数据、XML文档和应用程序数据的访问能力,是迄今为止最有效的数据库访问技术。ADO.NET支持多种开发需求,包括创建应用程序、工具、语言或Internet 浏览器使用的数据库客户端应用程序和中间层业务对象。 简而言之,ADO.NET是.NET提供的为访问各种数据源提供统一接口和方法的数据访问技术。ADO.NET包括两大部分:数据提供程序和数据集(DataSet)。,ADO.NET对象模型:.NET Framework 数据提供程序是专门
3、为数据处理以及快速地只进、只读访问数据而设计的组件,它由Connection、Command、DataReader和DataAdapter对象组成。该组件的主要功能是将数据源中的数据取出,放入DataSet对象中,或将修改后的数据存回数据源。DataSet专门为独立于任何数据源的数据访问而设计的组件,用于多种不同的数据源和XML数据,它像一个内存数据库,可以包含一个表或多个表,表与表之间可以建立关系。,2、数据提供程序及组成 根据将要访问的数据库类型,.NET框架提供了不同有数据提供程序:(1)SQL Server数据提供程序,用以访问SQL Server数据库(2)OLE DB数据提供程序,
4、用以访问任何与OLE DB兼容的数据库(3)ODBC数据提供程序,用访问ODBC建立的数据库(4)Oracle数据提供程序,用以访问Oracle 8以上版本的数据库,2、数据提供程序及组成 每个数据提供程序都是由以下的核心对象组成:Connection对象,用于连接数据源,即建立对物理数据库的连接;Command对象,用于向数据源发出各种SQL命令,如返回数据、修改数据、运行存储过程以及发送或检索参数信息等。即在数据源上执行的 SQL 语句或者存储过程;DataReader对象,从数据源中提供高性能的数据流。即从数据源中获取只向前的、只读的数据流;DataAdapter对象,提供连接DataS
5、et对象和数据源的桥梁,它使用Command对象在数据源中执行SQL命令,以便将数据加载到DataSet对象中,使DataSet中数据的更改与数据源保持一致。注意:以上所有对象都两种类型,SQLXXXX对象和OleXXXX对象。其中以Sql开头的对象用来连接SQL Server数据库,它们存储于System.Data.SqlClient命名空间中;以OleDB开头的对象用于连接其他OLE DB数据库(Access、Oracle等),它们存储于System.Data.OleDB命名空间中。,3、Connection的创建及连接设置要对数据库进行操作,首先要建立起对该数据库的连接。在.NET环境下
6、,通过SQL Server数据提供程序的SqlConnection对象建立对SQL Server数据库的连接;通过OLE DB数据提供程序的OleDbConnection对象建立对Access和Oracle提供有OLE DB访问接口的数据库的连接;OracleConnection类的对象连接Oracle数据库;而OdbcConnection类的对象连接任何支持ODBC数据库。Connection对象,其实质上就是连接字符串(ConnectionString),通过设置该字符串的属性来管理数据源的连接。它的属性如下表。其语法格式: string ConnectionString=“server=
7、;database=;trusted_connection=true|false;uid=;pwd=” SqlConnection conn = new SqlConnection(ConnectionString);,3、Connection的创建及连接设置Connection对象的属性,3、Connection的创建及连接设置SQL SERVER数据库的两种连接模式。 1、Windows模式连接,以windows连接模式必须将trusted_connection=true 。 例如: string myconnection = server=(local);database=news;tr
8、usted_connection=true; SqlConnection conn = new SqlConnection(myconnection);,3、Connection的创建及连接设置SQL SERVER数据库的两种连接模式。 2、混合模式连接,使用此种连接模式必须输入登录名和登陆口令。 例如: string myconnection = server=(local);database=news;uid=sa;pwd=sa; SqlConnection conn = new SqlConnection(myconnection);,3、Connection的创建及连接设置Connec
9、tion的方法。 1、Open方法,用于打开由ConnectionString属性指定的数据源连接。格式如下: 连接对象名. Open() 2、Close方法,用于断开由ConnectionString属性指定的数据源连接。格式如下: 连接对象名. Close(),4、Command命令Command对象主要是运行SELECT、INSERT、UPDATE或DELETE之类的SQL语句命令,同时还可以调用存储过程或从特定表中取得记录。这使用Command对象的命令,这些命令都是一次性命令,即执行一个SQL命令或一个存储过程,并返回一个操作结果。,4、Command命令Command对象的创建方法
10、有:使用无参数的构造函数来创建Connection对象的新实例,然后设置适当的属性值 。其格式: SqlCommand com=new SqlCommand( ); com.Connection=cn;使用带参数的构造函数, 并指定查询字符串和Connection对象。其格式: SqlCommand com=new SqlCommand(命令文本,cn);调用Connection对象的CreateCommand()方法 。其格式: SqlCommand com=cn.CreateCommand( );,4、Command命令Command对象属性。,4、Command命令Command对象方法
11、,5、DataReader对象DataReader对象,用于从数据源中读取只进且只读的数据流。我们只需要按顺序读取数据而不需要其他操作时,可以使用DataReader对象。DataReader类是抽象类,因此不能直接实例化,而是通过执行Command对象的ExecuteReader方法返回DataReader实例。,5、DataReader对象DataReader对象属性,5、DataReader对象命令DataReader对象方法,6、DataAdapter对象DataAdapter对象,称为“数据适配器”,是一种通用类,可以执行针对数据源的各种操作,包括更新变动的数据,填充数据集以及其他操
12、作。DataAdapter对象在DataSet与数据之间起桥梁作用。数据库中的数据需要通过数据适配器的运输才存放到数据集中,而在数据集中的任何修改也要通过数据适配器提交到数据库中,数据适配器就象仓库和车间临时仓库之间运输材料的运货车,而数据连接则是运货车行走的路线。,6、 DataAdapter对象DataAdapter对象属性 DataAdapter对象的常用属性形式为XXXCommand,用于描述和设置操作数据库。使用DataAdapter对象,可以读取、添加、更新和删除数据源中的记录。对于每种操作的执行方式,适配器支持以下4个属性,类型都是Command,分别用来管理数据操作的“增”、“
13、删”、“改”、“查”动作。,6、 DataAdapter对象DataAdapter对象方法,7、使用ADO.NET开发数据库应用程序的一般步骤(1)根据使用的数据源,确定使用的.NET Framework 数据提供程序;(2)建立与数据源的连接,需使用Connection对象;(3)执行对数据源的操作命令,通常是SQL命令,需 使用Command对象;(4)使用数据集对获得的数据进行操作,需使用 DataReader、DataSet等对象;(5)向用户显示数据,需使用数据控件。,【任务1】编写一个用来测试连接的应用程序,用来建立与当前目录下的 SQL Server2008 “student”数
14、据库的连接。程序的设置界面如图1所示,程序的运行界面如图2所示。,三、任务实施,图1 程序设计界面,图2 程序运行界面,代码如下,【任务2】已知在应用程序当前目录下,有一个名为“Student”的数据库,该数据库中有一个名为student的表,表中的数据如图3所示。请使用Command对象执行SQL命令向表中插入一个学生的信息,学生数据如下: 4 赵六 18 插入后,student表中的内容如图4所示。,图3 插入前的student表中的数据,图4 插入后的student表中的数据,代码如下,【任务3】已知在应用程序当前目录下,有一个名为“Student”的数据库,该数据库中有一个名为student的表。请编写一个程序用来从该表中读取所有男生的数据,并显示出来。程序的设计界面如图5所示,程序的运行界面如图6所示。程序运行时单击【连接并读取】按钮,将会把所有男生的数据显示在窗体上。,图5 程序设计界面,图6 程序运行界面,代码如下,