sql-server - vb.net 中的 SQL Server 命令不起作用,原因全部在一句话中

标签 sql-server vb.net insert sql-update

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

但我无法修复它。 如果 @ID = 列 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)"

最佳答案

这应该可以正常工作

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 "

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

关于sql-server - vb.net 中的 SQL Server 命令不起作用,原因全部在一句话中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13178360/

相关文章:

javascript - JS中单引号替换为双引号

asp.net - 访问 gridview 列中的超链接

php - 从文本框中的逗号分隔文本在 MYSQL 中添加新行

java - JDBC 如何从具有多个值查询的单个插入中获取所有生成的键?

c# - 如何将变量(别名)传递给where条件SQL

sql - 使用 group by 检索主键上的聚合行

mysql - Excel VBA SQL 连接语法错误

.net - 证明 SQL 注入(inject)

mysql - 插入重复键更新

c# - 字符串或二进制数据将被截断。?