如果不存在vb.net更新
问题描述:
任何人都可以帮助我解决我的查询。我想更新我的数据,如果syscode
不存在,但当我尝试更新sysdesc
它失败,因为syscode
已经存在。如果不存在vb.net更新
Dim query As String
Dim rowsAffected As Integer
query = "UPDATE tbl_sysname SET syscode = @code, sysdesc = @desc " & _
"WHERE id = @id AND NOT EXISTS (SELECT syscode FROM tbl_sysname WHERE " & _
"syscode = @code) "
cmd = New SqlCommand(query, cn)
cmd.Parameters.Add("@code", SqlDbType.VarChar).Value = txtCode.Text
cmd.Parameters.Add("@desc", SqlDbType.VarChar).Value = txtDesc.Text
cmd.Parameters.Add("@id", SqlDbType.VarChar).Value = lblId.Text
rowsAffected = cmd.ExecuteNonQuery
'MsgBox(rowsAffected)
If rowsAffected >= 1 Then
'reader = cmd.ExecuteReader
MsgBox("Update Successfully")
LVSysName.Items.Clear()
'reader.Close()
GetLvData() 'This will display the data of LvSysName
Else
MsgBox("Failed to Update")
End If
我想避免在同一时间,我可以更新sysdesc
的syscode
重复。 帮我解决我的查询或给我一个建议,我应该怎么做
答
你需要使用两个UPDATE
这个语句。没有办法一气呵成。
UPDATE tbl_sysname
SET syscode = @code
WHERE id = @id AND
NOT EXISTS (SELECT syscode FROM tbl_sysname WHERE syscode = @code)
UPDATE tbl_sysname
SET sysdesc = @desc
WHERE id = @id
为什么'sysdesc'的更新受到'syscode'的影响? –
当我更新'sysdesc''rowsAffected'将返回0因为'NOT EXIST'函数 –
没问题,所以即使数据库中存在'syscode',你想更新'sysdesc'? –