科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网软件频道基础软件VS2005数据存取层深入剖析之高级篇

VS2005数据存取层深入剖析之高级篇

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

当你设计业务层和数据存取层时,你基本上都是把实体和关系分别映射到数据库表格及表格列中

作者:朱先忠编译 来源:天极开发 2007年11月3日

关键字: VS2005 数据 存取 剖析

  • 评论
  • 分享微博
  • 分享邮件
一、 扩展表格适配器

  当你设计业务层和数据存取层时,你基本上都是把实体和关系分别映射到数据库表格及表格列中。典型地,我们期望每个实体的行为是:通过一系列语句来执行数据库操作。那么,你该如何描述一个实体的行为呢?数据存取设计模式在这方面提供了一定的指导作用。其实,一个表格适配器的CommandCollection属性是一个内部数据结构,它提供的语句用于硬编码在一个表格上期望的行为。

  因此,如果你想在Customers表格上添加一种行为,那么,你需要把一个新的T-SQL语句添加到CommandCollection属性,然后经由CustomersTableAdapter类中的一个新的方法使其成为public型属性。Visual Studio 2005提供一个简单的向导来完成所有这些工作。只要简单地选择在表格适配器设计器中定义的一个任务,你就可以触发这个向导,如图4所示。


图4.选择表格适配器设计器定义的一个任务触发特定的向导。

  当你在Visual Studio 2005中选择一个表格适配器组件时,它将显示一个灵敏标签。点击它之后,Visual Studio就会显示一个菜单。如果你选择编辑查询,那么,你会得到当前数据集组件中所有表格的一个图形表示(见图5)。


图5.Visual Studio 2005数据设计器提供的表格关系和表格适配器。

  要编辑一个现有查询,你只要选择表格适配器任务列表中的任务并编辑Properties窗口中的属性即可。为了添加一个新任务,你可以选择“Add Query”,然后遵循随后向导的提示即可。该向导最终引导你定义一个新的命令,无论它是一个查询或是一个更新语句。完成之后,你会看到一个额外的入口出现在任务列表内;另外,对基本代码也进行了一定程度的修改。

  现在,假定你定义了一个新的查询语句—用于根据不同国家加载相应的顾客信息,那么,最后的语句看起来类似如下:

SELECT ... FROM customers WHERE country=@country

  向导会要求你为使用该语句检索数据(GetDataXXX)并填充传递的数据表格(FillXXX)的两个方法进行命名。当然,你可以选择仅生成其中一个方法。

  让我们如图6所示来命名方法GetDataByCountry和FillByCountry。


图6.添加到表格适配器的新任务。

  这两个新的方法都要使用从命令集合中提取的命令来建立适配器的SelectCommand语句并执行它。列表4展示了该FillByCountry方法的源代码。

  列表4.FillByCountry方法的源代码。

The new FillByCountry method
Public Overridable Overloads Function FillByCountry( _
ByVal dataTable As CustomersDataTable, _
ByVal country As String) As Integer
 Me.Adapter.SelectCommand = Me.CommandCollection(1)
 If (country Is Nothing) Then
  Me.Adapter.SelectCommand.Parameters(0).Value = System.DBNull.Value
 Else
  Me.Adapter.SelectCommand.Parameters(0).Value = CType(country, String)
 End If
 If (Me.ClearBeforeFill = True) Then
  dataTable.Clear()
 End If
 Dim returnValue As Integer = Me.Adapter.Fill(dataTable)
 Return returnValue
End Function
    • 评论
    • 分享微博
    • 分享邮件
    邮件订阅

    如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。

    重磅专题
    往期文章
    最新文章