2

这可能是一个非常简单的问题。

但我无法修复它。如果@ID = column id,我尝试更新,否则全部插入。

如果我把它放在一个句子中,只有这个不起作用

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)"
4

2 回答 2

4

这应该工作得很好

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 "

尽管使用存储过程可能会更好(为了可维护性)。

于 2012-11-01T13:54:02.680 回答
1

试试下面的:

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"
于 2012-11-01T13:53:44.920 回答