我正在尝试使用C#在Visual Studio 2017中的数据集设计器中设置查询。
我使用WAMP作为我的数据库服务器,当我从wamp中执行以下操作时,我得到了预期的结果。
SELECT * FROM `product` NATURAL JOIN `contractproduct` WHERE ContractID = 1001
事实上,如果我从Visual Studio的设计器中执行完全相同的行,我会得到相同的结果。问题是当我尝试按如下方式创建查询时:
SELECT * FROM `product` NATURAL JOIN `contractproduct` WHERE ContractID =@ID
VS给我错误:" SQL文本无法在网格窗格和图表窗格中表示。"即使我已经使用= @ VAR语法进行其他查询。 SQL不是我开始时的强项,但我真的不明白为什么它在设计师的引擎中有效,但随后抱怨。任何帮助表示赞赏。
编辑:答案是使用内部联接:
SELECT *
FROM product p
INNER JOIN contractproduct c ON p.ProductID = c.ProductID
WHERE c.ContractID =@id
答案 0 :(得分:3)
这个问题的答案是使用内连接。
@PathVariable
这在Visual Studio中非常有效,并且如上面的评论所述,这是一种比自然连接更好的做法。