以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  已添加了具有相同键的项  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=183096)

--  作者:wsjawm
--  发布时间:2022/10/24 11:43:00
--  已添加了具有相同键的项

执行代码后出现已添加了具有相同键的项的错误,Sqlserver中只添加成功了第一次循环的值即number=521,不知道什么情况

--  作者:有点蓝
--  发布时间:2022/10/24 11:46:00
--  
代码呢?
--  作者:wsjawm
--  发布时间:2022/10/24 11:49:00
--  
上传代码出错,不知道怎么搞
--  作者:有点蓝
--  发布时间:2022/10/24 11:53:00
--  
如果有SQL:http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&Id=69632
--  作者:wsjawm
--  发布时间:2022/10/24 11:53:00
--  
Dim num As Integer = 521
Dim cmd As New SQLCommand
cmd.ConnectionName = shujuyuan
For i As Integer = 0 To 1
    cmd.CommandText = "Select Count(*) Fr om {新厂外圈投料表} Where [number] = \'" & num & "\'"
    If cmd.ExecuteScalar = 0 Then
        cmd.CommandText = "Insert Into 新厂外圈投料表 (number,type) Values(?,?)"
        cmd.Parameters.Add("@number", num)
        cmd.Parameters.Add("@type", "012.25.1530")
        cmd.ExecuteNonQuery
    End If
    num = num + 1
Next
--  作者:有点蓝
--  发布时间:2022/10/24 11:55:00
--  
For i As Integer = 0 To 1
cmd.Parameters.clear
    cmd.CommandText = "Select Count(*) Fr om {新厂外圈投料表} Where [number] = \'" & num & "\'"
    If cmd.ExecuteScalar = 0 Then
        cmd.CommandText = "Insert Into 新厂外圈投料表 (number,type) Values(?,?)"
        cmd.Parameters.Add("@number", num)
        cmd.Parameters.Add("@type", "012.25.1530")
        cmd.ExecuteNonQuery
    End If
    num = num + 1
Next

--  作者:wsjawm
--  发布时间:2022/10/24 12:02:00
--  
问题解决了,但是不明白为什么要这么做呢?


--  作者:有点蓝
--  发布时间:2022/10/24 12:04:00
--  
道理不复杂,Parameters是一个字典,不允许添加重复的键,在循环里不断添加,就重复了