2015-12-10 6 views
0

Этот код не работал должным образом, поскольку он показывал все объявления независимо от того, одобрен ли = ДА или НЕТ. Где он должен проверять UserInfo, если у пользователя есть ДА в столбце «approv», тогда показ его объявлений в противном случае не отображается. Так что я попытался исправить это, но теперь я ставлю себя в более сложном положении, как я получаю сообщение об ошибке, как в моем почтовом названии incorrect syntax near '.'C# SQL Statement Неверный синтаксис рядом с '.'

SqlDataAdapter dashowadsoneLogo = new SqlDataAdapter(@"SELECT AD.[AdsID], AD.[Country], AD.[State], AD.[City], AD.[AdsTit], SUBSTRING([AdsDesc],1,50) as AD.AdsDesc, 
        AD.[AdsPrice], AD.[Section], AD.[Category], AD.[Img1], AD.[AdsDate], I.[approv] FROM [ads] as AD JOIN UserInfo as I ON AD.[Country] = @Location and I.[approv]='YES' ORDER BY AD.[AdsDate] DESC", cs); 
+1

Вы пропустили псевдоним AD в (SUBSTRING ([AD.AdsDesc], 1,50), как AD.AdsDesc) – RajeeshMenoth

+0

Это действительно вопрос о SQL, а не C#, должен изменить теги – kai

ответ

0

Вы пропустили псевдоним AD в вашем коде.

Попробуйте этот код: Порция

SqlDataAdapter dashowadsoneLogo = new SqlDataAdapter(@"SELECT AD.[AdsID], AD.[Country], AD.[State], AD.[City], AD.[AdsTit], SUBSTRING([AD.AdsDesc],1,50) as AD.AdsDesc, 
       AD.[AdsPrice], AD.[Section], AD.[Category], AD.[Img1], AD.[AdsDate], I.[approv] FROM [ads] as AD JOIN UserInfo as I ON AD.[Country] = @Location and I.[approv]='YES' ORDER BY AD.[AdsDate] DESC", cs); 

Ошибка в вас код:

SUBSTRING([AdsDesc],1,50) as AD.AdsDesc 
4

Вы не можете иметь символ периода в имени столбца псевдоним: -

SUBSTRING([AdsDesc],1,50) as AD.AdsDesc, 

Изменить это: -

SUBSTRING([AD.AdsDesc],1,50) as AdsDesc, 

Кроме того, для такого сложного запроса, вы должны создать stored procedure вместо этого.

0

вас есть ошибка здесь заменить в запросе от SUBSTRING([AdsDesc],1,50) as AD.AdsDesc изменение SUBSTRING([AD.AdsDesc],1,50) as [AdsDesc]

Если он не работает, то заменить, как этот

SELECT [AD.AdsID], [AD.Country], [AD.State], [AD.City], [AD.AdsTit], 
0

Попробуйте это:

SqlDataAdapter dashowadsoneLogo = new SqlDataAdapter(@"SELECT AD.[AdsID], AD.[Country], AD.[State], AD.[City], AD.[AdsTit], SUBSTRING(AD.[AdsDesc],1,50) as AD.AdsDesc,AD.[AdsPrice], AD.[Section],AD.[Category],AD.[Img1], AD.[AdsDate], I.[approv] FROM [ads] as AD JOIN UserInfo as I ON AD.[Country] = @Location and I.[approv]='YES' ORDER BY AD.[AdsDate] DESC",cs); 
Смежные вопросы