【发布时间】:2010-12-26 17:17:12
【问题描述】:
插入 Access 2010 数据库时出现此异常。
例如,如下:
INSERT INTO CranbrookMain (
ID,BlockNo,Plot,SubPlot,Code,Type,LastName,FirstName,
ServiceHome,ServiceAddress,ServiceCity,
Notes
) VALUES (
'1','Y','37','DS','C2','O','SMITH','John',
'Service Inc.','520B SLATER ROAD N.W.','CityName',
'CityName ☺ '
)
导致异常:
例如:System.Data.OleDb.OleDbException (0x80040E14): 查询表达式 ''CityName ☺' 中的字符串语法错误。 在 System.Data.OleDb.OleDbCommand.ExecuteCommandTextErrorHandling(OleDbHResult 小时) 在 System.Data.OleDb.OleDbCommand.ExecuteCommandTextForSingleResult(tagDBPARAMS dbParams,对象和 executeResult) 在 System.Data.OleDb.OleDbCommand.ExecuteCommandText(对象和执行结果) 在 System.Data.OleDb.OleDbCommand.ExecuteCommand(CommandBehavior 行为,对象和 executeResult) 在 System.Data.OleDb.OleDbCommand.ExecuteReaderInternal(CommandBehavior 行为,字符串方法) 在 System.Data.OleDb.OleDbCommand.ExecuteNonQuery() 在 C:\Users\user\documents\visual studio 2010\Projects\ReadingData\ReadingData\Program.cs:line 238 中的 ReadingData.Program.Main(String[] args)执行SQL插入查询的代码是:
insertSQL = "INSERT INTO CranbrookMain (ID,BlockNo,Plot,SubPlot,Code,Type,LastName," +
"FirstName,ServiceHome,ServiceAddress,ServiceCity,Notes) VALUES (" +
"'"+id+ "','" + blockNo + "','" + plot + "','" + subPlot + "','" + code +
"','" + type + "','" + lastname + "','" + firstname + "','" + serviceHome +
"','" + serviceAddress + "','" + serviceCity + "','" + notes +"')";
OleDbCommand cmd = new OleDbCommand(insertSQL, con); // creating query command
cmd.ExecuteNonQuery();
错误发生在cmd.ExecuteNonQuery()函数调用中。
如果我直接在 Access 2010 文件中执行,上面的 SQL INSERT 语句可以正常工作。
【问题讨论】:
-
你的城市名称旁边那个悲伤的笑脸在做什么?
-
来自包含二进制数据的文件。
-
文件???你正在传递一个城市的文件??