在ASP.NET中使用where子句和join

时间:2016-02-10 09:12:13

标签: c# sql asp.net

即时接收语法错误,在使用C#加入时遇到问题?这是我的代码:

DataTable dtProducts = system.GetDataTable ("SELECT p.*, c.CategoryName, sc.CategoryName as SubCategoryName
                                             FROM TBLPRODUCTS p 
                                             LEFT JOIN TBLCATEGORIES c ON p.CategoryId = c.CategoryId 
                                             LEFT JOIN TBLCATEGORIES sc ON c.SubCategoryId = sc.CateogryId
                                             WHERE p.ProductID == ProductID");

2 个答案:

答案 0 :(得分:2)

我认为你应该只使用一次等号

where p.ProductID == ProductID

更改为

where p.ProductID = ProductID

还删除第二个

答案 1 :(得分:1)

您重复WHERE子句两次

 where 
     where p.ProductID == ProductID

另外,您应该在此=子句中使用==而不是WHERE

最后,您应该在字符串前添加@符号,以形成verbatim string literal

应该是:

DataTable dtProducts = system.GetDataTable (@"Select 
        p.*, c.CategoryName, sc.CategoryName as SubCategoryName
    from 
        TBLPRODUCTS p 
    left join
        TBLCATEGORIES c on p.CategoryId = c.CategoryId 
    left join
        TBLCATEGORIES sc on c.SubCategoryId = sc.CateogryId
    where 
        p.ProductID = ProductID");