首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VB >

VB+SQL

2013-08-10 
求助 VB+SQL我用一个ListView来批量修改的楼盘的房号,但是遇上了一个问题我们需要把原来的房号全部改掉,于

求助 VB+SQL
我用一个ListView来批量修改的楼盘的房号,但是遇上了一个问题
我们需要把原来的房号全部改掉,于是我把调整后的房号写进了.Item(I).SubItems(15)里,上传时,需要把修前的房号写进“测前房号”里,然后再把改后的房号覆盖原来的房号,但是数据库里有限制,不允许房号列出现重要值,我就想先把一组数字写进原“房号”列中,然后再用修改后的房号覆盖这些数字,但是现在出现了一个问题。当我全部选定ListView1里的所有行时,没有任何错误,但是如果我只选择其中一行时,就会在第二段代码里报错,提示限定了重复值。不允许写入,,,,请教各位老师,这个该如何办啊?



With Me.ListView1.ListItems
    For I = 1 To .Count
        If .Item(I).Checked Then
            If .Item(I).SubItems(15) <> "" Then
                SQL = "UPDATE housingresources SET " & _
                " [测前房号] = '" & .Item(I).SubItems(5) & "'" & _
                " WHERE [房号] = '" & .Item(I).SubItems(5) & "'"
                cn.Execute SQL
            End If
        End If
    Next
End With
Call CloseConn
Call OpenConn
With Me.ListView1.ListItems
    For I = 1 To .Count
        If .Item(I).Checked Then
            If .Item(I).SubItems(15) <> "" Then
                SQL = "UPDATE housingresources SET " & _
                " [房号] = '" & KKK & "'" & _
                " WHERE [测前房号] = '" & .Item(I).SubItems(5) & "'"
                cn.Execute SQL
            End If
        End If
        KKK = KKK + 1
    Next
End With
Call CloseConn


[解决办法]
那就在保存之前,先用select测试一下,更改的目标数据是否存在,如果存在则将那个数据改为一个唯一的临时值,然后再执行更改

这个数据结构也够蛋疼的,事实上,要用做主键的数据最好不要赋给物理意义,不管你记录怎么改,主键总是不改

热点排行