La command SQL Server dans vb.net ne fonctionne pas en une phrase

C'est propably une question très facile.

Mais je ne peux pas le réparer. J'essaie une mise à jour si @ID = id de colonne, sinon insère tout.

Seul celui-ci ne fonctionne pas si je le mets tout en une phrase

Cmd.CommandText = "UPDATE Locatie SET (Longitude = @Longitude, Latitude = @Latitude, Timestamp = @Timestamp) WHERE ID=@ID IF @@ROWCOUNT=0 INSERT INTO Locatie VALUES (@ID, @Longitude, @Latitude, @Timestamp)" 

Cela devrait fonctionner très bien

 Cmd.CommandText = "IF EXISTS (SELECT 1 FROM Locatie WHERE Id = @Id) " & Environment.NewLine & _ " BEGIN UPDATE Locatie SET Longitude = @Longitude, Latitude = @Latitude, Timestamp = @Timestamp WHERE ID=@Id END " & Environment.NewLine & _ "ELSE " & Environment.NewLine & _ " BEGIN INSERT INTO Locatie VALUES (@ID, @Longitude, @Latitude, @Timestamp) END " 

Bien que vous soyez probablement mieux (pour la maintenabilité) en utilisant une procédure stockée.

essayez le ci-dessous:

 Cmd.CommandText = "UPDATE Locatie SET (Longitude = @Longitude, Latitude = @Latitude, Timestamp = @Timestamp) WHERE ID=@ID GO IF @@ROWCOUNT=0 begin INSERT INTO Locatie VALUES (@ID, @Longitude, @Latitude, @Timestamp) end Go"