2016-04-04 4 views
-3

У меня есть проблема с моим проектом в C#, и я действительно не могу найти проблему ...Неправильный синтаксис около «-» 2

отладки говорит:

Неправильный синтаксис около «- '

Это проблематично код:

if (!MyAdoHelperCsharp.IsExist("DB.mdf", sql)) 
{  
    insertQuery = "INSERT INTO Tables (TableNum,SitNum,Position,Busy,Sunday-7:00,Sunday-8:00,Sunday-9:00,Sunday-10:00,Sunday-11:00,Sunday-12:00,Sunday-13:00,Sunday-14:00,Sunday-15:00,Sunday-16:00,Sunday-17:00,Sunday-18:00,Sunday-19:00,Sunday-20:00,Sunday-21:00,Sunday-22:00,Monday-7:00,Monday-8:00,Monday-9:00,Monday-10:00,Monday-11:00,Monday-12:00,Monday-13:00,Monday-14:00,Monday-15:00,Monday-16:00,Monday-17:00,Monday-18:00,Monday-19:00,Monday-20:00,Monday-21:00,Monday-22:00,Tuesday-7:00,Tuesday-8:00,Tuesday-9:00,Tuesday-10:00,Tuesday-11:00,Tuesday-12:00,Tuesday-13:00,Tuesday-14:00,Tuesday-15:00,Tuesday-16:00,Tuesday-17:00,Tuesday-18:00,Tuesday-19:00,Tuesday-20:00,Tuesday-21:00,Tuesday-22:00,Wednesday-7:00,Wednesday-8:00,Wednesday-9:00,Wednesday-10:00,Wednesday-11:00,Wednesday-12:00,Wednesday-13:00,Wednesday-14:00,Wednesday-15:00,Wednesday-16:00,Wednesday-17:00,Wednesday-18:00,Wednesday-19:00,Wednesday-20:00,Wednesday-21:00,Wednesday-22:00,Thursday-7:00,Thursday-8:00,Thursday-9:00,Thursday-10:00,Thursday-11:00,Thursday-12:00,Thursday-13:00,Thursday-14:00,Thursday-15:00,Thursday-16:00,Thursday-17:00,Thursday-18:00,Thursday-19:00,Thursday-20:00,Thursday-21:00,Thursday-22:00,Friday-7:00,Friday-8:00,Friday-9:00,Friday-10:00,Friday-11:00,Friday-12:00,Friday-13:00,Friday-14:00) VALUES ('"; 
    insertQuery += tablenum + "','" + SitNum + "','" + position + "','" + false+ "','" + false+ "','" + false+ "','" + false+ "','" + false+ "','" + false+ "','" + false+ "','" + false+ "','" + false+ "','" + false+ "','" + false+ "','" + false+ "','" + false+ "','" + false+ "','" + false+ "','" + false+ "','" + false+ "','" + false+ "','" + false+ "','" + false+ "','" + false+ "','" + false+ "','" + false+ "','" + false+ "','" + false+ "','" + false+ "','" + false+ "','" + false+ "','" + false+ "','" + false+ "','" + false+ "','" + false+ "','" + false+ "','" + false+ "','" + false+ "','" + false+ "','" + false+ "','" + false+ "','" + false+ "','" + false+ "','" + false+ "','" + false+ "','" + false+ "','" + false+ "','" + false+ "','" + false+ "','" + false+ "','" + false+ "','" + false+ "','" + false+ "','" + false+ "','" + false+ "','" + false+ "','" + false+ "','" + false+ "','" + false+ "','" + false+ "','" + false+ "','" + false+ "','" + false+ "','" + false+ "','" + false+ "','" + false+ "','" + false+ "','" + false+ "','" + false+ "','" + false+ "','" + false+ "','" + false+ "','" + false+ "','" + false+ "','" + false+ "','" + false+ "','" + false+ "','" + false+ "','" + false+ "','" + false+ "','" + false+ "','" + false+ "','" + false+ "','" + false+ "','" + false+ "','" + false+ "','" + false+ "','" + false+ "','" + false+ "','" + false+ "','" + false+ "')"; 
    MessageBox.Show(insertQuery); 
    MyAdoHelperCsharp.DoQuery("DB.mdf", insertQuery); 
} 

большое спасибо! И извините за длинный код :)

+3

Попробуйте обертывание 'воскресенье-7: 00' и ​​другие аналогичные колонки с' [ 'и ']' следующим образом: '[Sunday-7: 00]'. –

+0

Название вашей колонки: «Воскресенье-7: 00»? – Gnqz

ответ

0

Проблема в том, что имена ваших столбцов используются операторами, которые SQL не будут правильно понимать и думают, что на самом деле пытаются выполнить вычисления, которые в этом случае равны Sunday - 1:00, что, очевидно, не заканчивается давая ответ и фактически является ошибкой. То есть то, что вызывает ошибку

Неправильный синтаксис около «-»

Чтобы исправить это, любые поля, которые содержат операторы, зарезервированные ключевые слова или любые другие недопустимые символы, например пробелы, вы должны содержать их в квадратных скобках, так что SQL знает это имя поля вместо того, чтобы гадать об этом, а затем получить это неправильно, например

insertQuery = "INSERT INTO Tables (TableNum, SitNum, Position,Busy, [Sunday-7:00], [Sunday-8:00],...)" 

он также может быть стоит положить разрывы строк в код и теперь каждый раз, как это очень нечитаемым это помогает читать длинные строки, такие как заявления SQL, как так

insertQuery = "INSERT INTO Tables 
(TableNum,SitNum,Position,Busy, 
[Sunday-7:00],[Sunday-8:00],...)"; 
Смежные вопросы