2016-02-10 2 views
1

im получение синтаксической ошибки на нем, получение проблемы при работе с соединением в C#? Вот мой код:Использование where where с присоединением в ASP.NET

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

в вашем SQL, где строка приходят два раза. удалите одну строку. –

+1

У вас есть синтаксическая ошибка C#, потому что у вас есть разрывы строк в регулярном строчном литерале. Используйте строковый строковый литерал '@" Выберите ... "вместо этого. Неясно, является ли «я получаю синтаксическую ошибку» означает ошибку компиляции (описанную мной) или исключение из-за синтаксиса SQL. В свой вопрос укажите * точное сообщение об ошибке. –

+0

Также измените 'p.ProductID == ProductID' на' p.ProductID = ProductID' в котором: –

ответ

2

Я думаю, вы должны использовать только один раз, знак равенства

where p.ProductID == ProductID 

изменение

where p.ProductID = ProductID 

также удалить второй, где

+0

спасибо за совет ур – Shkupjane

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"); 
+0

нужно добавить @ infront строки для многострочного – Takarii

+0

Done @Takarii thanks –

Смежные вопросы