2013-09-25 4 views
2

Я уверен, что я делаю что-то глупое, но я могу понять, что проблема с этим вставным запросом. У меня есть некоторый опыт работы с SQL Server, но, к сожалению, я вынужден использовать Access для этого проекта (который я новичок). На этом этапе я попытался вручную вставить в Access (который работал), а затем скопировал точный запрос в Visual Studio, и я все еще получаю синтаксическую ошибку вставки. Я могу вставлять другие таблицы в эту же тестовую программу, но мне не удалось заставить этот запрос работать.MS Access SQL Insert Query

В таблице Я пытаюсь вставить настроен как:

ID - Int Primary Key 
time_series_id Int 
open decimal 
high decimal 
low decimal 
close decimal 
volume int 
observation_date Date/Time 

Ручной запрос я попытался это:

queryString = "INSERT INTO daily_prices (time_series_id, open, high, low, close, volume, observation_date) VALUES(13, 3036.75, 3045.72, 3023.27, 3027.52, 4894428992, '2013-09-24')"; 

command = new OleDbCommand(queryString, conn); 
command.ExecuteNonQuery(); 

Запрос был также первоначально сформулирован следующим образом:

queryString = String.Format(@"INSERT INTO daily_prices (time_series_id, open, high, low, close, volume, observation_date) VALUES ({0}, {1} ,{2} ,{3} ,{4} ,{5} ,'{6}')", newId, open, high, low, close, volume, date); 

Любая помощь будет оценена здесь. Я уверен, что это глупая ошибка, но я немного похудел, так как я могу выполнить запрос в доступе, а затем тот же запрос выходит из строя на C#.

+0

Какая ошибка? –

+0

Ошибка вставки синтаксиса, поэтому я так долго смотрел в неправильном месте. Я проверил зарезервированные слова Access, но не зарезервированные слова SQL. –

ответ

1

Слово OPEN и CLOSE являются зарезервированными ключевыми словами для Jet-SQL (Jet 4.0). Используйте квадратные скобки вокруг них (или, если возможно, изменить название столбца)

queryString = "INSERT INTO daily_prices (time_series_id, [open], high, low, " + 
       "[close], volume, observation_date) VALUES " + 
       "(13, 3036.75, 3045.72, 3023.27, 3027.52, 4894428992, '2013-09-24')"; 
+0

Я просмотрел зарезервированные слова, прежде чем публиковать это, но, должно быть, искал неправильный список. Я знал, что это будет глупо. Спасибо, Стив. –

+0

Это список для [JET 4.0] (http://support.microsoft.com/kb/321266), обратите внимание, как эти слова по-прежнему зарезервированы для [ACE] (http://office.microsoft.com/en- us/access-help/access-2007-reserved-words-and-symbols-HA010030643.aspx), но вам нужно прокрутить вниз, чтобы увидеть их. Для меня это просто плохой оцепенение на стороне MS – Steve