如何在 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 语句
Datagridview 更新到多个表而不使用 bindingsource 或 tableadapter