我正在尝试找出此错误消息:
SQL 语句末尾缺少分号。
我现在使用 MS Access 作为数据库,我有 2 个表:用户和import_users_temp_excel。我想将数据从MS Excel导入import_users_temp_excel,然后将新注册表合并或复制到表"用户"中。基本上,我想避免重复到"用户"表中。这是我的代码:
Dim sqlquery1 As New OleDbCommand
sqlquery1.Connection = con
sqlquery1.CommandType = CommandType.Text
sqlquery1.CommandText = "insert into users ([employeeID], [username], [middlename], [lastname], [level], [ADDR1], [ADDR2], [city], [state], [zip], [warehouse_assig], [timezone], [branchM], [contactinfo], [email], [altemail], [Source]) values(@employeeID, @username, @middlename, @lastname, @level, @ADDR1, @ADDR2, @city, @state, @zip, @warehouse_assig, @timezone, @branchM, @contactinfo, @email, @altemail, @Source)
select distinct * from import_users_temp_excel;"
但是由于某种原因,我收到了此错误"缺少分号"。我正在使用Visual Studio Community 2015。
正如注释所提到的,您的INSERT
和您的SELECT
是两个不同的语句,因此它们都需要分号来终止它们。
试试这个——
sqlquery1.CommandText = "insert into users ([employeeID], [username], [middlename], [lastname], [level], [ADDR1], [ADDR2], [city], [state], [zip], [warehouse_assig], [timezone], [branchM], [contactinfo], [email], [altemail], [Source])
values (@employeeID, @username, @middlename, @lastname, @level, @ADDR1, @ADDR2, @city, @state, @zip, @warehouse_assig, @timezone, @branchM, @contactinfo, @email, @altemail, @Source);
select distinct * from import_users_temp_excel;"
Dim strsql As String = "insert into users SELECT * FROM import_users_temp_excel WHERE import_users_temp_excel.employeeID Not IN (SELECT employeeID from users)"
Dim command1 As New OleDbCommand
command1 = New OleDbCommand(strsql, con)
command1.ExecuteNonQuery()
con.Close()
loaddata()