在Microsoft Office System中使用ADO.NET数据集(二)-.NET教程,数据库应用
来源:作者: 发布时间:2007-12-26 02:10:46


创建一个dataset
假定您必须使用一个灵活的数据对象,这个对象允许您包含多个表,在表和表之间设定关系,连同向前或向后读取数据。
ado.net中提供这些特性??甚至更多??的对象就是dataset。dataset是一种断开式(disconnected)对象,这意味着一旦填充完数据,就不必保持数据库连接。到数据库服务器的网络连接即使断开了也不会影响您的客户端应用程式使用数据库中的数据。这项技术的优势之一就是您释放数据库连接给其他用户,并且您的应用程式不再依赖于这个连接。然而,这也意味着数据库中的数据在您填充完dataset后可能改变,您应该意识到这个可能的差异。
数据访问层能够创建多个dataset对象。例如,您可能使用一个dataset容纳静态数据以便填充用户界面上的一个列表框,或您可能想使这些数据供多个用户访问。另一个对象可能包含某个用户更新后的数据,将更改回传到数据库中的代码尽可能简单也是必要的。现在,您能够使用一个对象完成这任何的需求。
图1展示了northwind数据库中各个表的结构,这些表包含了客户和订单信息。您能够创建一个dataset,作为这个数据库的结构映像,或完全改变他以适应您的应用程式需求。
图1:在northwind customers dataset 中使用的各个表的结构
下面的代码在getdataset方法中定义了一个dataset,包含了用户订单数据的全部列。他带有一个bsaveschema参数,用于指示该过程是否需要将dataset对象的xml和xml架构的拷贝保存为磁盘文档,这些文档将在该应用程式的其他部分使用。
getdataset的代码以实例化一个新的空dataset对象开始,这个dataset对象被命名为northwindcustomerorders。假如您不提供给这个dataset一个名称,这个dataset将采用默认的命名newdataset。这在大多数情况下没有什么问题,但是当您从这个dataset生成并使用xml时,这个名字有时将作为xml结构的一部分。
public shared function getdataset(byval bsaveschema as boolean) as dataset
instantiate the dataset, giving it a custom name
(the default name is newdataset)
dim ds as new dataset("northwindcustomerorders")
下一步将建立数据库连接??从应用程式配置文档中读取数据库连接字符串。
set up the connection to the database, reading from the app.config
dim sqlcnn as new sqlconnection
sqlcnn.connectionstring = _
configurationsettings.appsettings("connectdb")
sqlcnn.open()
有几种方法创建dataset 中的datatable对象来容纳关系数据。其中一种方法就是使用sql语句(作为一个字符串变量)。这很容易办到,但是,通常您更希望使用存储过程来访问数据。下面代码中简单的select语句无需任何参数??他返回表中完整的记录集合。
大多数ado.net类,同.net framework中其他许多类相同,拥有多个构造函数,每个构造函数具备不同参数,以便于您选择怎样实例化对象。您能够传递一个内容为sql语句的字符串和一个连接对象给sqlcommand对象的构造函数,实例化一个sqlcommand对象。
|
还没有关于此文章的相关评论!