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

时间:2013-11-27 18:03:27

标签: c# sql visual-studio-2010 where-clause tableadapter

我正在尝试在我的C#项目中向我的表适配器添加一个参数。当我将@添加到where子句时,visual studio给我一个错误。这是我的SQL语句:

select PO.PO_Num,
  PO.Supplier,
  PO.DateOrdered,
  PO.DateRequired,
  PO.Terms,
  PO.Freight,
  PO.FOB,
  POItems.PO_Num as Expr1,
  POItems.Quantity,
  POItems.Description,
  POItems.Item,
  POItems.Price,
  POItems.KeyNum
from PO,
  POItems
where PO.PO_Num = POItems.PO_Num
  and (PO.PO_Num = @PO_Num)

有人可以告诉我我做错了什么吗?在此先感谢您的帮助!

2 个答案:

答案 0 :(得分:3)

修复我需要更改where子句的错误:

where PO.PO_Num = POItems.PO_Num and (PO.PO_Num = @PO_Num)

添加问号(?)代替at符号(@),如下所示:

where PO.PO_Num = POItems.PO_Num and (PO.PO_Num = ?)

之后我能够执行查询,并且Visual Studio 2010没有抛出错误。

答案 1 :(得分:0)

我刚刚在添加表适配器和使用.NET框架数据提供程序的数据源进行oracle时遇到了这个问题。将where子句改为使用“@”和“?”的两种解决方案不适合我。

相反,我必须使用以下内容:

where PO.PO_Num = POItems.PO_Num and (PO.PO_Num = :PO_Num)