【问题标题】:VB.NET change SQL query in TableAdapter?VB.NET 更改 TableAdapter 中的 SQL 查询?
【发布时间】:2018-10-24 17:34:04
【问题描述】:

我正在寻找如何更改 TableAdapter 中的 SQL 查询。 在旧的 VB 中,DataEnvironmement 是简单的

Set rs = DataEnvironment1.rsQuery
  DataEnvironment1.Commands.Item("Query").CommandText = "SELECT row FROM table"
  DataEnvironment1.Query
set rs = Nothing

我如何在 vb.net 中做到这一点?

类似这样的:

Dim rs As New Databaze2.DataSet1TableAdapters.Query
TableAdapterrs.Adapter.SelectCommand.CommandText = "SELECT row FROM table"

但这不起作用。

我要求这样做是因为我正在寻找某种方法来插入一个复杂的查询。问题可能在于组合包含的选择和两个参数以及只有一列 DATUM_CAS。 因为:

  1. 没有这两个参数?命令没问题
  2. 不包含选择命令是可以的
  3. 我什么时候替换?通过正确的 date_time 命令就可以了

see the screenshot with command and eror

【问题讨论】:

  • 我不知道该错误消息在说什么。我根本不使用 MySQL,但我的第一个猜测是它不支持使用问号作为参数占位符。我知道 Microsoft 数据库可以,但我不知道 MySQL 是否可以。

标签: vb.net dataset tableadapter


【解决方案1】:

您不会在代码中执行此操作。表适配器是一种类型,每个查询的 SQL 代码都是该类型的一部分。几乎所有修改都在设计器中完成。您可以在解决方案资源管理器中双击 DataSet 在设计器中打开它。然后,您可以选择一个表适配器并在“属性”窗口中对其进行配置。

如果需要,您可以在那里修改默认查询的 SQL 代码,但一般来说,您不应该这样做。如果您需要不同的东西,您可以向同一个表适配器添加额外的查询。例如,默认查询通常会检索所有行的所有列,然后您通过Fill 方法执行它。您可以添加一个具有WHERE 子句的额外查询来过滤返回的行,并且将通过您命名的不同方法执行该查询。例如,如果您想按DateOfBirth 列进行过滤,那么您可以将方法命名为FillByDateOfBirth

如果您想更改结果集中的列,您只需编辑默认查询,这还必须更改关联 DataTable 的架构。

【讨论】:

    猜你喜欢
    • 2011-02-04
    • 2011-01-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-11-29
    • 1970-01-01
    • 2013-06-30
    • 1970-01-01
    相关资源
    最近更新 更多