|
|
|
Ошибка в SQL запросе
|
|||
|---|---|---|---|
|
#18+
Делаю следующее: private IDbConnection _connection; ...... //Initialize _connection object creating new OleDbConnection object. IDbCommand addCommand=this._connection.CreateCommand(); addCommand.Connection=this._connection; string commandText=string.Format(CultureInfo.InvariantCulture, "INSERT INTO Tasks (Assembly, TaskType, User, Password, MaxExecutionTime, Frequency, Interval, StartDate, ByMonthRule, ByMonthDayRule, ByWeekDayRule, Id, Params) VALUES('{0}', '{1}', '{2}', '{3}', {4}, '{5}', {6}, '{7}', '{8}','{9}','{10}','{11}','{12}')",view["Assembly"], view["TaskType"], view["User"], view["Password"], view["MaxExecutionTime"], view["Frequency"], view["Interval"], view["StartDate"], view["ByMonthRule"],view["ByMonthDayRule"],view["ByWeekDayRule"],id.ToString(),view["Parameters"]); //(Детали реализации я пропустил) addCommand.CommandText=commandText; addCommand.ExecuteNonQuery(); Так вот. Результатом форматирования строки явлеяется такой SQL запрос: INSERT INTO Tasks (Assembly, TaskType, User, Password, MaxExecutionTime, Frequency, Interval, StartDate, ByMonthRule, ByMonthDayRule, ByWeekDayRule, Id, Params) VALUES('Assembly', 'Task Type', 'Asv', '12345', 1000, 'Monthly', 3, '10/13/2005 13:40:29', '4;6','3;10','Saturday(1);Friday','ac16dd79-84b4-4429-8cff-07997911978c','p1=v1;p2=v2') Типы данных колонок: MaxExecutionTime - integer Interval - integer StartDate - date\time Все остальное - string Работаю с Access базой. ExecuteNonQuery метод кидает исключение - Synax Error in INSERT INTO statement. Но: При запуске того же самого запроса в MS Access - собственно в той базе с которой я работаю - все работает отлично. Новая запись вставляется. Не подскажете в чем тут может быть дело? Хотя бы идеи как получить подробную информацию о синтаксической ошибке в запросе? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.10.2005, 10:59 |
|
||
|
Ошибка в SQL запросе
|
|||
|---|---|---|---|
|
#18+
Sovostring commandText=string.Format(CultureInfo.InvariantCulture, "INSERT INTO Tasks (Assembly, TaskType, User, Password, MaxExecutionTime, Frequency, Interval, StartDate, ByMonthRule, ByMonthDayRule, ByWeekDayRule, Id, Params) VALUES('{0}', '{1}', '{2}', '{3}', {4}, '{5}', {6}, '{7}', '{8}','{9}','{10}','{11}','{12}')",view["Assembly"], view["TaskType"], view["User"], view["Password"], view["MaxExecutionTime"], view["Frequency"], view["Interval"], view["StartDate"], view["ByMonthRule"],view["ByMonthDayRule"],view["ByWeekDayRule"],id.ToString(),view["Parameters"]); Мне кажется в запросе дело, если я правильно посчитал MaxExecutionTime это {5} - он в кавычках, а это int, там кавычек быть не должно. С Interval , кстати та же история. Не забудьте поставить кавычки в {6} ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.10.2005, 12:15 |
|
||
|
Ошибка в SQL запросе
|
|||
|---|---|---|---|
|
#18+
Неее, нумерация идет с 0 так что MaxExecutionTime это {4} Interval это {6} Обратите внимание за результат форматирования - с кавычками все правильно. Уж на такой бы вещи я не прокололся. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.10.2005, 12:38 |
|
||
|
Ошибка в SQL запросе
|
|||
|---|---|---|---|
|
#18+
Может тогда в формате даты проблема, она точно так пишется? Попробуйте без нее, если получится значит дело в ней. А не стоит ли писать после значений типа view["ByMonthDayRule"] .ToString()? Если честно, я бы немного по другому "собирал" commandText (в смысле форматирования), чтобы видно было что к чему, а то так немного запутано... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.10.2005, 13:15 |
|
||
|
Ошибка в SQL запросе
|
|||
|---|---|---|---|
|
#18+
C датой проблем нет. Еще раз повторяю - в Access запрос проходит без проблем. Дату нужно писать в кавычках. Я потому и вопрос в форум ADO.NET послал, что судя по всему дело именно в нем. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.10.2005, 13:24 |
|
||
|
Ошибка в SQL запросе
|
|||
|---|---|---|---|
|
#18+
Странно все это. Заработало нормально после того, как я изменил имена колонок: User на TaskUserName Password на TaskUserPassword Frequency на RecurrenceFrequency Interval на RecurrenceInterval Явно тут действуют зарезервированные имена колонок.. Тогда почему же все работает в Access Все равно непонятно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.10.2005, 15:19 |
|
||
|
Ошибка в SQL запросе
|
|||
|---|---|---|---|
|
#18+
Ну да, дествительно: В этом списке есть Parameters, User, Password и Interval Frequency только нету:) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.10.2005, 15:31 |
|
||
|
|

start [/forum/topic.php?fid=17&msg=33321890&tid=1353598]: |
0ms |
get settings: |
11ms |
get forum list: |
21ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
56ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
54ms |
get tp. blocked users: |
2ms |
| others: | 238ms |
| total: | 401ms |

| 0 / 0 |
