如何在 TableAdapter 查询中使用命名参数?

Posted

技术标签:

【中文标题】如何在 TableAdapter 查询中使用命名参数?【英文标题】:How to use named parameters in a TableAdapter query? 【发布时间】:2013-03-07 11:56:34 【问题描述】:

我正在通过查询向导配置数据集。我想生成参数化查询。我的查询如下所示:

SELECT 
    Field1, Field2, Field3 
FROM
    SomeTable
WHERE
    Field1 = @field1

正在从 Access 2007 数据库中获取数据,该查询在该数据库中成功执行。然而,从代码中,我得到了错误:

“@”附近的 WHERE 子句出错。无法解析查询文本。

我该如何解决这个问题?

【问题讨论】:

我在讲述 TableAdapter 配置向导。顺便你可以看到query和error@Tim Schmelter 【参考方案1】:

Access 不支持命名参数并使用? 而不是@(如SQL-Server)。

所以这应该有效:

...
WHERE
    Field1 = ?

另见How to: Create Parameterized TableAdapter Queries:

在构造参数化查询时,请使用特定于您正在编码的数据库的参数表示法。

例如,Access 和 OleDb 数据源使用问号 '?' 表示参数,因此 WHERE 子句将如下所示:WHERE City = ?

【讨论】:

非常感谢@Tim Schmelter 先生,它运行良好。

以上是关于如何在 TableAdapter 查询中使用命名参数?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 TableAdapter 配置向导的 SQL 语句中使用等宽字体?

用于 Visual Studio 的 TableAdapter 查询生成器的 NOT IN 语句

如何使用 TableAdapter 进行更新?

Datagridview 更新到多个表而不使用 bindingsource 或 tableadapter

C# .NET4.0 TableAdapter.Update() 不会插入新记录

在 TableAdapter 中使用使用“EXECUTE”命令的存储过程