有谁能够告诉我,为什么下面的代码产生错误:附近有语法错误“(”
cQueryIS = "UPDATE Additional (StaffEUPN, Class, Additional1, Additional2, Additional3, Additional4,AdditionalLarge1, AdditionalLarge2, AdditionalLarge3, AdditionalLarge4) "
cQueryIS &= "VALUES (@cSTEupn, @cClass, @cAdditional1, @cAdditional2, @cAdditional3, @cAdditional4, @cAdditionalLarge1, @cAdditionalLarge2, @cAdditionalLarge3, @cAdditionalLarge4) "
cQueryIS &= "WHERE StaffEUPN = '" & cStaffEUPN & "' AND Class = '" & cClass & "'"
然而此代码的工作:
cQueryIS = "UPDATE Additional SET [email protected], [email protected],
[email protected], [email protected], [email protected],
[email protected], [email protected],
[email protected], [email protected],
[email protected] "
cQueryIS &= "WHERE StaffEUPN = '" & cStaffEUPN & "' AND Class = '"
& cClass & "'"
我有点困惑,因为我做的方式它首先在INSERT
命令上正常工作,仅在UPDATE
上导致错误。
以下是其余代码:
Using dbConnectionSQL As New SqlConnection(dbConnectionString)
Using comm As New SqlCommand()
With comm
.Connection = dbConnectionSQL
.CommandType = CommandType.Text
.CommandText = cQueryIS
.Parameters.AddWithValue("@cSTEupn", cStaffEUPN)
.Parameters.AddWithValue("@cClass", cClass)
.Parameters.AddWithValue("@cAdditional1", ProvisionAdditional(1))
.Parameters.AddWithValue("@cAdditional2", ProvisionAdditional(2))
.Parameters.AddWithValue("@cAdditional3", ProvisionAdditional(3))
.Parameters.AddWithValue("@cAdditional4", ProvisionAdditional(4))
.Parameters.AddWithValue("@cAdditionalLarge1", ProvisionAdditional(5))
.Parameters.AddWithValue("@cAdditionalLarge2", ProvisionAdditional(6))
.Parameters.AddWithValue("@cAdditionalLarge3", ProvisionAdditional(7))
.Parameters.AddWithValue("@cAdditionalLarge4", ProvisionAdditional(8))
End With
Try
dbConnectionSQL.Open()
comm.ExecuteNonQuery()
Catch ex As SqlException
WriteToLogFile("Update Additional", ex.Message.ToString())
MsgBox("Update Additional - " & ex.Message.ToString())
Exit Sub
End Try
End Using
End Using
因为你混合了'insert'和'update'语法。 –
您的意思是VALUES方式只能用于INSERT命令吗? –
更新命令必须使用'SET = ,...',而插入可以使用VALUES语法 –
Charleh