以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  複选列,进行同一程序  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=179984)

--  作者:acheng8888
--  发布时间:2022/9/21 21:19:00
--  複选列,进行同一程序
我想针对V42I表内複选的列一併执行"up_42I_m_y"这个程序,代码如下
但会报错
详细错误信息:
已经加入含有相同索引键的项目。
请问我该怎麽修正问题呢?


Dim mnum As Long 
Dim mcase_no As String
Dim mngnm As String
Dim filter As String 
Dim mposi As Integer 
Dim mqty1 As Integer 
Dim mqty2 As Integer 
Dim cmd As New SQLCommand



With Tables("V42I")
    If .TopPosition > -1 Then \'如果选定区域包括数据行
        


        For i As Integer = .TopPosition To .BottomPosition

mcase_no = Tables("V42I").Current("case_no")

cmd.C
cmd.CommandText = "up_42I_m_y" \'指定存储过程名
cmd.StoredProcedure = True \'表示CommandText内容不是标准的SQL语句,而是存储过程名

cmd.Parameters.Add("@case_no", mcase_no)
cmd.Parameters.Add("@userid" , User.Name)

cmd.ExecuteNonQuery
cmd.Commit()
 

        Next
    End If
End With


--  作者:有点蓝
--  发布时间:2022/9/22 9:01:00
--  
cmd.CommandText = "up_42I_m_y" \'指定存储过程名
cmd.StoredProcedure = True \'表示CommandText内容不是标准的SQL语句,而是存储过程名
cmd.Parameters.clear
cmd.Parameters.Add("@case_no", mcase_no)
……

另外没有启用事务不需要调用cmd.Commit()

--  作者:acheng8888
--  发布时间:2022/9/22 9:58:00
--  
又试一下,虽没有报错,但都只有选定的第一列执行程序,其他複选的没有被执行
再度麻烦了

Dim mnum As Long 
Dim mcase_no As String
Dim mngnm As String
Dim filter As String 
Dim mposi As Integer 
Dim mqty1 As Integer 
Dim mqty2 As Integer 
Dim cmd As New SQLCommand

With Tables("V42I")
    If .TopPosition > -1 Then \'如果选定区域包括数据行
        


        For i As Integer = .TopPosition To .BottomPosition


mcase_no = Tables("V42I").Current("case_no")


cmd.C
cmd.CommandText = "up_42I_m_y" \'指定存储过程名
cmd.StoredProcedure = True \'表示CommandText内容不是标准的SQL语句,而是存储过程名
cmd.Parameters.clear
cmd.Parameters.Add("@case_no", mcase_no)
cmd.Parameters.Add("@userid" , User.Name)

cmd.ExecuteNonQuery

         Next
    End If
End With
Functions.Execute("42I_position")

--  作者:有点蓝
--  发布时间:2022/9/22 10:01:00
--  
        For i As Integer = .TopPosition To .BottomPosition
mcase_no = Tables("V42I").rows(i)("case_no")

--  作者:acheng8888
--  发布时间:2022/9/22 10:49:00
--  
解决了,谢谢协助