MS Access SQL插入查询

时间:2013-09-25 22:31:50

标签: c# sql ms-access

我确定我做了一些愚蠢的事情,但我似乎可以解决这个插入查询的问题。我有一些SQL Server的经验,但不幸的是我被迫使用Access这个项目(我是新手)。此时我尝试手动插入Access(工作),然后将确切的查询复制到Visual Studio中,我仍然收到插入语法错误。我能够在同一个测试程序中插入其他表,但是我无法使这个查询起作用。

我要插入的表格设置为:

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#中同样的查询失败。

1 个答案:

答案 0 :(得分: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')";