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

时间:2013-03-07 11:56:34

标签: c# ms-access oledb

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

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

正在从Access 2007数据库获取数据,此数据库成功执行。但是从代码来看,我收到错误:

  

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

我该如何解决这个问题?

1 个答案:

答案 0 :(得分:2)

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

所以这应该有效:

...
WHERE
    Field1 = ?

另见How to: Create Parameterized TableAdapter Queries

  

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

     

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