【问题标题】:Declaring a Variable TableAdapter on a Form在表单上声明变量 TableAdapter
【发布时间】:2011-08-15 16:29:50
【问题描述】:

希望这是一个相当简单的问题。

我正在我的应用程序中构建一个通用搜索表单。这将允许用户在整个应用程序中搜索各种记录。

我似乎无法弄清楚的一件事是如何允许 TableAdapter 的声明在运行时更改。应用程序的每个部分都会将一个变量传递给搜索表单,以指定应加载哪个表。

在表单类中我有以下内容:

FRIEND WITHEVENTS tbaSearchData AS database.databaseTableAdapters.TableOneTableAdapter

这对 TableOne 来说非常棒。但是,我有大约一百个可以搜索的表。

要加载数据,我使用 DataGridView 并通过私有方法填充它。

任何帮助将不胜感激。

【问题讨论】:

    标签: vb.net winforms visual-studio-2010 tableadapter


    【解决方案1】:

    Tableadapter 真正用于设计时设置,在运行时不容易更改。对于这些请求,您可能需要考虑使用 DataAdapter,如 SqlDataAdapter。这些对象的开销较低,并且不像 tableadapter 那样特定于类型,因此在运行时制作它们是一个不错的解决方案。

    【讨论】:

    • 花了一点时间,但 SQL 适配器正在做我需要的事情。您提到它的开销也较低。当 SQL 数据库添加了数据源时,使用 SQLAdapter 通常比使用 TableAdapter 更好吗?
    • 我认为这取决于你在做什么。当您提前了解大部分数据结构时,您可以使用 tableadapter 和它生成的类型化数据集,并且更容易编写代码。但是为了运行时的灵活性,我不使用 tableadapter 和类型化的数据集。我在飞行中创造我的东西。有时很难引用对象,但这是一个平等的权衡,因为我可以让我的 sqladapter 完全按照我的意愿行事。
    【解决方案2】:

    让我们看看我是否理解这一点。 我想出了两种可能的解决方案

    1. 从应用程序的各个方面,您可以传递专门的 DataAdapter 本身而不是表名,并将通用 DataAdapter 变量分配给搜索表单。

    2. 您可以在搜索表单中创建一个通用 DataAdapter 并更改用于加载数据的 SQL 命令。在下面的代码中,da 将是一个 DataAdapter,table 是传递给搜索表单的表名

    da.SelectCommand.CommandText = "Select * from " & table

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-10-09
      • 1970-01-01
      • 2012-05-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多