Неверное имя столбца - PullRequest
       4

Неверное имя столбца

0 голосов
/ 20 января 2012

По какой-либо причине я получаю сообщение об ошибке «Неверное имя столбца allocationStart» при попытке выполнить запрос Это внутри функции dateadd, и в базе данных существует столбец. это datetime.

Вот запрос:

cmd.commandText = "Insert Into EmpPac 
                     (catalogIdent, empPacIdent, empIdent, allocation, 
                      quantityLimit, quantityIssued, quantityShipped, 
                      allocationMonths, sizeChartIdent, sizeNotes, nextUpdate)
                     values ( '" & catalogIdent & "', '" & intvalue_EmpPak 
                      & "', '" & empIdent & "',"&jobQuantityLimit&",'"
                      &jobQuantityLimit&"', '0', '0',"&
                      allocationMonths&", '"& sizeChartident & 
                      "', '', DATEADD(month, "&allocationMonths&
                      ", allocationStart))"
cmd.execute

Ответы [ 2 ]

2 голосов
/ 20 января 2012

Вы не указываете, в какой таблице allocationstart находится.

Вам нужно сделать так, чтобы ваш INSERT источник был SELECT из вашей исходной таблицы, не используя ключевое слово VALUES, так как он ожидает список явных значений.

Например:

INSERT INTO MyTargetTable
SELECT <stuff>, DATEADD(month, XXX, allocationstart)
FROM MySourceDataTable
0 голосов
/ 20 января 2012

Я буду честен - я не слежу за вашим вопросом на 100%, однако, думаю, я понимаю, что вы пытаетесь сделать.

Исходная ошибка возникает из-за команды DATEADD.

Третий параметр DATEADD - это значение даты и времени для манипуляции.

Я предполагаю, что ваш столбец "allocStart" автоматически устанавливает текущую дату и время в БД, и вы передаете этот столбец в функцию DATEADD, чтобы манипулировать им и вставлять возвращенное значение в столбец "nextUpdate".Если это то, что вы пытаетесь сделать, столбец auto datetime не будет установлен (может возвращать дату / время и т. Д.), Пока строка не будет зафиксирована, поэтому вы не можете использовать автоматически = сгенерированные столбцы в функции изнутри оператора INSERT..

Я также настоятельно рекомендую вам взглянуть на параметры, это намного безопаснее и эффективнее.

Если вы используете номер месяца для столбца «nextUpdate», вы можете использовать DateTime.Сейчас. Добавьте это к строке SQL.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...