2013-02-28 1 views
2

Моего SQL запросSQL исключения при выборе столбцов с именами псевдонимов

cmd = new OleDbCommand("select vchr_No as voucher No, vchr_Date as Date, 
         vchr_Acnthd as Debit, vchr_Prtynm as Paid to 
         from cshvchrs 
         where vchr_No like '%" + vchno + "%' ", con); 

При попытке получить данные, я получаю исключение:

Оператор SELECT заявление включает в себя зарезервированное слово или имя аргумента с ошибкой или отсутствием, или пунктуация неверна.

Пожалуйста, кто-нибудь помочь мне

ответ

2

На vchr_Date as Date части

Date является reserved keyword на Transact-SQL.

Зарезервированные ключевые слова являются частью грамматики языка Transact-SQL , который используется SQL Server для анализа и понимания Transact-SQL заявления и партии.

Вы можете использовать его с квадратными скобками [] like;

vchr_Date as [Date] 

Используйте свой полный запрос как;

cmd = new OleDbCommand("select vchr_No as [voucher No] ,vchr_Date as [Date] ,vchr_Acnthd as Debit ,vchr_Prtynm as Paid to from cshvchrs where vchr_No like '%" + vchno + "%' ", con); 
2

Вы используете Date в качестве псевдонима (vchr_Date as Date). Date является зарезервированным ключевым словом, попробуйте:

vchr_Date as [Date] 

или изменить Date к какому-либо другому псевдониму.

Вы также должны использовать [] вокруг псевдонимов с пространством.

5

Вы недопустимое SQL - псевдонимы, содержащие пробелы должны быть экранированы, как и псевдонимы, которые являются ключевыми словами.

cmd = new OleDbCommand("select vchr_No as [voucher No] ,vchr_Date as [Date] ,vchr_Acnthd as Debit ,vchr_Prtynm as Paid to from cshvchrs where vchr_No like '%" + vchno + "%' ", con); 
1

У вас неверно указаны имена столбцов. Например, фрагмент:

vchr_No as voucher No 

должны быть выражены как

vchr_No as [voucher No] 

или вы не будете иметь действительный SQL.

В общем, вам нужно указать [и] вокруг имен столбцов, которые содержат пробелы, знаки препинания, ключевые слова или любые другие символы, которые недопустимы в идентификаторах столбцов SQL.

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