【发布时间】:2017-10-17 07:34:47
【问题描述】:
谁能帮我解决我的查询。如果syscode 不存在,我想更新我的数据,但是当我尝试更新sysdesc 时它失败了,因为syscode 已经存在。
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
我想避免syscode 的重复,同时我可以更新sysdesc。
帮助我解决我的问题或给我一个关于我应该做什么的建议
【问题讨论】:
-
为什么
sysdesc的更新会受到syscode存在的影响? -
当我更新
sysdesc时,rowsAffected将返回 0,因为NOT EXIST函数 -
好的,所以即使
syscode存在于数据库中,您也要更新sysdesc? -
是的,但我也想避免重复
syscode
标签: sql sql-server vb.net