辜渝傧

13037102709

027-87870986

教学实训

您当前的位置:首页 > 教学资源 > 实训方案 >

C#应用实训|任务1 连接数据库

发布者:唯众    布时间:2020-12-21 14:13:16    点击量:

任务描述

        要完成学生信息管理系统功能,首先必须要连接后台数据库,实现对学生信息的增、删、改、查操作。

知识引入

  1. ADO.NET
(1)ADO.NET概述
ADO.NET是一个以.NET框架为基础的全新的数据操作模型,是专门为.NET平台上的数据访问而设计的,更适用于分布式和Internet访问等大型应用程序的开发,也可使程序设计人员以更方便、直观的方式来存取数据。
ADO.NET由Microsoft ActiveX Data Objects(ADO)改进而来,它提供平台互用和可收缩的数据访问功能,它是微软开发的一个COM组件库,ADO主要包括Connection、Command、Recordset和Field对象。使用ADO时,要打开数据库的连接,把一些数据选出来,放在记录集中,这些数据由字段组成,接着处理这些数据,并在服务器上进行更新,最后关闭连接。
ADO.NET的作用与ADO相同,提供易于使用的类集,以访问数据,ADO.NET的功能得到更新数据和增强,可以用于.NET编程环境。
(2)ADO.NET的作用
·简单的访问关系数据
ADO.NET的主要目标是提供对关系数据的简单访问功能。显然,易于使用的类表示关系数据库中的表、列和行,另外,ADO.NET引入了DataSet类,它代表来自封装在一个单元中的关联表中的一组数据,并维持它们之间完整的关系。这在ADO.NET中是一个新概念,可以显著地扩展数据访问接口的功能。直观一点说,DataSet可以看做是一种数据类型,但是普通的int、string等类型不同的是,它是一个由数据表、关系、主外键结构组成的“数据库”,由于它是一个“类型”,所以它的示例就是一个变量,故而它是位于内存中的,而不需要像SQL或者Access那样需要安装使用。关于DataSet,我们将在本章及后续章节中具体分析,它是ADO.NET中新增的重要属性,也是ADO.NET的特色之一。
·可扩展性,支持更多的数据源
ADO.NET可扩展性——为插件.NET数据提供了框架,这些提供者可用于从任何数据源读写数据。ADO.NET提供集中内置的.NET数据提供者,一种用于SQL Server数据库,一种用于Oracle;一种用于通用数据库接口ODBC(Microsoft 开放数据库连接API),一种用于OLE DB(Microsoft 基于COM的数据链接和嵌入数据库API)。几乎所有的数据库和数据文件格式都有可用的ODBC或OLE DB提供者,包括MS Access、第三方数据库和非关系数据。因此,通过一个内置的数据提供者,ADC.NET可以使用几乎所有关系型数据库和数据格式。许多数据库销售商如MySQL和Oracle还在其产品中提供了内置的.NET数据提供程序(provider),通常使用数据库厂商(如Cracle)提供的provider,在性能上和安全性上会比微软的更优秀一些,但是用法和功能其实都是完全一样的。
·支持多层应用程序
ADO.NET用于分层的应用程序,是当今商业和电子商务应用程序最常见的体系结构。在本书后续章节中,我们会具体讲解分层的含义。在多层体系结构中,应用逻辑的不同部分运行在不同的层上,只与其上或其下的层通信。
最常见的一个模型是三层模型,如下所示。
  • 数据层:包括数据库和数据访问代码。
  • 业务层:包含业务逻辑,定义应用程序的独特功能,并把该功能与其他层分离开来,这个层有时也称为中间层
  • 显示层:提供用户界面,控制应用程序的流程,对用户输入进行验证等等。
·ADO.NET以XML为基础构建,扩展性强
ADO.NET另一个重要功能是沟通行、列和XML文档中的关系数据,其中XML文档具有分层的数据结构。.NET技术是以XML为基础构建的,ADO.NET可以扩建.NET的用法。
(3)ADO.NET的结构
ADO.NET结构由.NET Framework数据提供程序和DataSet两部分组成。组成.NET Framework数据提供程序的4个主要对象为Connection、Command、DataReader和DataAdapter,如图8-10所示:
图8-10  ADO.NET的结构
·.NET Framework数据提供程序
        .NET Framework 数据提供程序是专门为数据操作以及快速、只进、只读访问数据而设计的组件。
        Connection 对象提供到数据源的连接。 使用 Command 对象可以访问用于返回数据、修改数据、运行存储过程以及发送或检索参数信息的数据库命令。 DataReader 可从数据源提供高性能的数据流。 最后,DataAdapter 在 DataSet 对象和数据源之间起到桥梁作用。 DataAdapter 使用 Command 对象在数据源中执行 SQL 命令,以便将数据加载到 DataSet 中,并使对 DataSet 中数据的更改与数据源保持一致。
·DataSet
        ADO.NET DataSet 专门为独立于任何数据源的数据访问而设计。因此,它可以用于多种不同的数据源,用于 XML 数据,或用于管理应用程序本地的数据。DataSet 包含一个或多个 DataTable 对象的集合,这些对象由数据行和数据列以及有关 DataTable 对象中数据的主键、外键、约束和关系信息组成。
(4).NET Framework数据提供程序的核心对象
·Connection 对象
ADO Connection 对象用于创建一个到达某个数据源的开放连接。通过此连接,您可以对一个数据库进行访问和操作。如果需要多次访问某个数据库,您应当使用 Connection 对象来建立一个连接。您也可以经由一个 Command 或 Recordset 对象传递一个连接字符串来创建某个连接。不过,此类连接仅仅适合一次具体的简单的查询。
·Command 对象
ADO Command 对象用于执行面向数据库的一次简单查询。此查询可执行诸如创建、添加、取回、删除或更新记录等动作。
如果该查询用于取回数据,此数据将以一个 RecordSet 对象返回。这意味着被取回的数据能够被 RecordSet 对象的属性、集合、方法或事件进行操作。
Command 对象的主要特性是有能力使用存储查询和带有参数的存储过程。
·DataReader对象
这是一个快速而易用的对象,可以从数据源中操作只读只进的数据流。对于简单地读取数据来说,此对象的性能最好。同样,适用于SQL Server 的DataReader被叫做SqlDataReader,用于ODBC的OdbcDataReader和用于OLE DB的OleDbDataReader。这个对象有些特殊,就是其无法像其他对象一样通过new关键字创建实例,而只能通过上面的Command对象执行ExceuteReader()方法的返回值来获取,而且在完成Reader的所有操作前,当前的数据连接是不允许关闭的。
·DataAdapter 对象
DataAdapter提供连接DataSet对象和数据源的桥梁。DataAdapter使用Command对象在数据源中执行SQL命令,以便将数据加载到DataSet中,并使对DataSet中数据的更改与数据源保持一致。
DataAdapter通过映射Fill() 方法来更改DataSet中的数据以便与数据源中的数据匹配,通过Update()方法来更改数据源中的数据以便与DataSet中的数据匹配。
  1. ADO.NET访问数据库
(1)连接数据库(Connection)
Connection对象用于在应用程序和数据库之间建立连接,每个.NET数据提供程序都有其自己的连接类。具体实例化哪个特定的连接类,取决于所使用的.NET数据提供程序。
表8-1列出了.NET数据提供程序及其对应的连接类。
表8-1  .NET数据提供程序及其对应的连接类
数据提供程序 连接类
SQL数据提供程序 SqlConnection
OLE DB数据提供程序 OleDbConnection
Oracle数据提供程序 OracleConnection
ODBC数据提供程序 OdbcConnection
 
表8-2列出了Connection对象的常用属性和方法。
表8-2  Connection对象的常用属性和方法
属  说 
Connection  String 指定连接数据库所需的值的字符串格式描述
Database 与Connection对象连接的数据库
方  说 
Open 打开与数据库的连接,以允许对数据库数据进行事务处理
Close 关闭与数据库的连接。关闭后,不能对数据库进行事务处理
 

任务实现

连接数据库,实现对学生信息管理系统后台数据库StudentDB的连接。
8-1
设计一个窗体,使用Connection对象连接学生信息管理系统后台数据库StudentDB,运行效果8-11所示:
图8-11  连接数据库测试
private void button1_Click(object sender, EventArgs e)
{
    //第一步:定义连接字符串
    string strConn = "server = .;uid = sa;pwd = 123456ab78;database = studentDB";
    //第二步:创建连接对象
    SqlConnection sqlConn = new SqlConnection(strConn);
    try
    {
        //第三步:打开连接对象
        sqlConn.Open();
        MessageBox.Show("数据库连接成功!");
    }
    catch (Exception ex)
    {
        //处理异常
        MessageBox.Show("异常信息:\n" + ex.Message);
    }
        finally {
           //第四步:关闭连接对象
           sqlConn.Close();
    }
}

任务小结

  1. .NET framework 中的 ADO.NET 是一组类,允许应用程序与数据库交互,以便检索和更新信息。
  2. DataSet和.NET 数据提供程序是ADO.NET 的两个主要组件。
  3. 每种 .NET 数据提供程序都是由以下四个对象组成:Connection,Command,DataAdapter以及DataReader。
  4. Connection 对象用于在应用程序和数据库之间建立连接。


上一篇:C#应用实训|项目八 学生信息管理系统

下一篇:C#应用实训|任务2 添加、删除学生信息