2013-07-20 63 views
2

这个查询在Access 2007中完美运行,但是当我尝试在我的代码中执行它时,我在INSERT INTO语句中得到了语法错误。有人请帮忙。INSERT INTO语句中的语法错误。在Access中运行不在VB

Dim sql1 As String 
sql1 = "INSERT INTO CustomerDtl (KioskID, ClientID, Language, SalesType) VALUES ('AD903',1,'English','Wholesale')" 
ObjAccess.ExecuteQuery(sql1) 

这是给ExecuteReader功能:

Public Function ExecuteQuery(ByVal SQLQuery As String) 

     'This Function Executes SQL Statement against connection and returns number of rows affected' 

     dbCommand = New OleDbCommand 
     Call OpenConnection() 

     With dbCommand 
      .Connection = dbConnection 
      .CommandType = CommandType.Text 
      .CommandText = SQLQuery 
      .ExecuteNonQuery() 
      .Dispose() 
     End With 

     Call CloseConnection() 

End Function 

回答

2

Langauge是保留关键字。通过包装[ ]逃脱它。

sql1 = "INSERT INTO CustomerDtl (..., [Language], ....) VALUES(...)" 
+2

感谢花花公子。问题解决了。 –

+0

也考虑使用参数来避免注入。 http://www.mikesdotnetting.com/Article/26/Parameter-Queries-in-ASP.NET-with-MS-Access –

相关问题