为什么我的Access查询在我的程序中不起作用?

时间:2014-08-11 23:05:14

标签: c# sql database ms-access oledb

我有一个方法应该将文件的名称输入到微软访问数据库中 我在INSERT INTO的{​​{1}}语句中收到语法错误。请参阅以下代码:

cmd.ExecuteNonQuery

当我在语法错误发生时调试并检查命令字符串的值时,它是

public static void LoadToDB(string path){ int lastindx = path.LastIndexOf('\\'); string pc = path.Substring(lastindx+1); string cmdStr = "INSERT INTO image (file_name) VALUES ('"+pc+"');"; OleDbCommand cmd = new OleDbCommand(cmdStr, con); cmd.ExecuteNonQuery(); Console.WriteLine(cmd.CommandText); cmd.Dispose(); }

当我将其直接复制并粘贴到Access中时,此命令执行正常,但在我的程序尝试执行时却没有。我已经看到了几个与此类似的问题,大多数答案都表明海报使用的是保留字,需要将列名包装在方括号("INSERT INTO image (file_name) VALUES ('DCM1004');")中。我试过这个并没有运气。有什么建议吗?

1 个答案:

答案 0 :(得分:0)

问题解决了,'图像'也需要方括号。新的查询命令文本如下所示:

" INSERT INTO [image] (file_name) VALUES ('DCM1004');"