|
知识路径: > 电子商务系统程序设计基础 > 电子商务系统建设 > B/S结构程序设计 >
|
被考次数:3次
被考频率:中频率
总体答错率:45%  
知识难度系数:
|
由 软考在线 用户真实做题大数据统计生成
|
相关知识点:72个
|
|
|
|
ADO.NET(ActiveX Data Objects.NET)是ASP.NET与数据库的接口,是.NET操作数据库对象的集合。它能够让开发人员更加方便的在应用程序中使用和操作数据。在ADO.NET中,大量的复杂的数据操作的代码被封装起来,当开发人员只需要编写少量的代码即可处理复杂的操作。
|
|
|
|
ADO.NET是ASP.NET与数据库的接口,其访问数据源的方式如下图所示。
|
|
|
|
|
ADO.NET是通过.NET数据库提供程序来访问数据源的。其中:SQL Server.NET数据提供程序用于访问Microsoft SQL Server 7.0或更高版本的数据库,可提供很高的访问效率。OLE DB.NET数据提供程序则用于访问Access、SQL Server 4.5更低版本、DB2、Oracle或其他支持OLE DB驱动程序的数据库。.NET数据提供程序类型如下表所示。
|
|
|
|
|
ADO.NET操作数据库是通过连接数据源、执行数据操作、将数据结果显示在应用程序中等过程完成的,其结构如下图所示。
|
|
|
|
|
ADO.NET的常用对象有连接对象Connection、执行命令对象Command等,各对象及含义如下表所示。
|
|
|
|
|
对于复杂的数据库应用系统而言,经常将数据从数据库服务器中取出,放入本地内存数据库,即DataSet中,若需将数据显示在页面中,则应使用DataView,数据流程如下图所示。
|
|
|
|
|
|
在ADO.NET中对数据库的操作一般需要三个步骤,即创建一个连接、执行命令、关闭连接。使用ADO.NET的对象,不仅能够通过控件绑定数据源,也可以通过程序实现数据源的访问。ADO.NET的规范步骤如下:
|
|
|
|
|
|
|
|
|
ADO.NET通过Connection对象连接数据库,Connection对象是数据库与应用程序之间的桥梁。
|
|
|
|
操作不同的数据库需要不同的对象,在本教材中,主要以SQL Server数据库为例讲解ADO.NET的使用。在数据库的连接中,需要使用.NET提供的SqlConnection对象来对数据库进行连接。该对象包含的主要属性和方法如下表所示。
|
|
|
|
|
使用SqlConnection对象连接数据库步骤为:
|
|
|
|
在连接数据库前,需要为连接对象设置连接字符串,连接字串基本格式为:
|
|
|
|
SqlConnection类将会通过此字符串来进行数据库的连接。其中,Data Source是SQL服务器的地址,如果相对于应用程序而言数据库服务器是本地服务器,则配置为(local)即可,如果是远程服务器,则需要填写具体的ip地址;Initial Catalog表示需要访问的数据库名;另外,User ID是数据库登录时的用户名,PWD是数据库登录时使用的密码。
|
|
|
|
|
|
创建SqlConnection对象时,构造方法中的参数connString就是第一步定义的连接字符串。
|
|
|
|
|
|
.NET对于不同类型数据库提供不同的程序,连接对象对于不同的数据库也有不同的类型,如下表所示。
|
|
|
|
|
|
如果在操作数据库时,需要大批量的查询、修改数据或者想在断开数据库连接的情况下操作数据,.NET提供了一种方式,可以一次性将数据从数据库服务器中取出,放在本地进行操作,而不用一直保持数据库连接。实现这种机制的是DataAdapter对象和DataSet对象,DataAdapter对象用于从数据库中采集数据,而DataSet是将采集到的数据保存在本地计算机内存中。
|
|
|
DataSet数据集表示来自一个或多个数据源数据的本地副本,是数据的集合,也可以看作是一个虚拟的数据库。DataSet中可以包含多个DataTable,DataTable的结构与数据库中表的结构相同,也是由若干行和若干列构成的,DataSet能够支持多表、表间关系、数据库约束等,可以模拟一个简单的数据库模型。DataSet的结构如下图所示。
|
|
|
|
|
在DataSet中,主要包括DataTableCollection,DataTable在System.Data中定义,它能够表示存储在内存中的一张表,表包含一个DataColumnCollection的对象,代表数据表的各个列的定义,还包含DataRowCollection对象,代表数据表中的所有的行。
|
|
|
DataSet对象允许应用程序半独立于数据源运行,因为DataSet从数据源中采集数据后,就会断开与数据源的连接,开发人员可以直接使用和处理这些数据,当数据发生变化并要更新时,则可以使用DataAdapter重新连接并更新数据源。DataAdapter的工作原理如下图所示。
|
|
|
|
|
创建一个DataSet时,可以指定一个数据集的名称,如果不指定名称,则默认被设为"NewDataSet",创建DataSet格式如下:
|
|
|
|
|
DataSet是一个本地数据集,如何将数据库的数据放在DataSet中,.NET中使用Data Adapter对象完成这个任务。DataAdapter对象是数据采集器,可以将数据库中的数据采集后,填充到DataSet中,是数据库与DataSet之间的桥梁。微软针对于不同的数据库提供多种DataAdapter对象,如下表所示。
|
|
|
|
|
|
|
|
|
|
通过DataAdapter对象的Fill方法,可以将返回的数据以表的形式填充到数据集DataSet中,根据填充的顺序定义每张表的索引,也可以在填充的时候给表命名,例如:
|
|
|
|
当返回的数据被存放到数据集中后,可以通过循环语句遍历和显示数据集中的信息。当需要显示表中某一行某一字段的值时,可以通过DataSet对象获取相应行的某一列的值,例如:
|
|
|
|
当需要遍历DataSet时,可以使用DataSet对象中的Count来获取行数,例如:
|
|
|
|
DataSet不仅可以通过编程的方法来实现显示,也可以使用ASP.NET中提供的控件来绑定数据集并显示。ASP.NET中提供了常用的显示DataSet数据集的控件,包括Repeater、DataList、GridView等数据绑定控件。将DataSet数据集绑定到GridView控件中可以方便地在控件中显示数据库中的数据并实现分页操作,例如:
|
|
|
|
上述代码就能够将数据集ds中的Table[0]中的数据绑定到GridView控件中。
|
|
|
|
使用DataView对象可以按照不同的视图显示DataSet中的数据。DataSet中的每一个DataTable都有一个默认的DataView,在例9-6中,绑定显示数据的程序语句:
|
|
|
|
|
|
也可以自定义DataView对象,该对象能够设置RowFilter属性(筛选表达式,其值为布尔值)。同时,该对象能够设置Sort属性进行排序,排序表达式可以包括列名或一个算式。
|
|
|
|
Command对象可以使用数据命令直接与数据源进行通信。通常情况下,Command对象用于数据的操作,例如执行数据的插入和删除,也可以执行数据库结构的更改。使用Command步骤如下:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
当Command对象指定了一个数据库的数据进行增删改的SQL语句,就可以通过Execute NonQuery方法来执行语句的操作。ExecuteNonQuery不仅可以执行SQL语句,也可以执行存储过程,该方法返回受影响记录的行数。
|
|
|
|
DataSet可以提供无连接的数据库副本,DataSet对象在表的生命周期内会为这些表进行内存的分配和维护,但DataSet占用却消耗了较大的本地内存资源。当对数据仅需要进行一些简单的操作时,可以使用DataReader对象。
|
|
|
DataReader对象可以产生只读,只进的数据流,这些数据流都是从数据库返回的。所以,每次的访问或操作只有一个记录保存在服务器的内存中。相比DataSet而言,DataReader具有较快的访问能力,并且能够使用较少的服务器资源,DataReader具有快速的数据库访问。.NET针对不同类型数据库提供了多种DataReader对象,如下表所示。
|
|
|
|
|
DataReader对象常用属性为HasRows,表示是否存在记录行。
|
|
|
|
|
|
|
|
|
③调用Command对象的ExecuteReader()方法创建DataReader对象;
|
|
|
④使用DataReader的Read()方法逐行读取数据;
|
|
|
⑤读取某列的数据,(type)dataReader[],中括号内可以使索引,也可以是列名;
|
|
|
|