下面代码是对表T1循环,生成入库记录,运行正确:
For Each r In T1.Rows
'+++++++如果当前行条码已轮询过,则越过++++++++++
If tms.Contains(r("条码"))= False Then
tms.Add(r("条码"))
'+++++++添加入库记录+++++++++++++++++++++
m = T1.Compute("sum(数量)","条码 = '" & r("条码") & "'") '按条码汇总数量
cmd.CommandText = " INSERT INTO 入库记录表 (条码,类型,来源,日期,店铺,编码,数量,备注) " & _
"VALUES('" & r("条码") & "','" & TB1.VALUE & "','" & ZY.value & "','" & DTP.Value & "','" & user.name & "','" & bm & "'," & m & ",'" & TB2.VALUE & "')"
cmd.ExecuteNonQuery
End If
Next
但是参数化SQLCommand后却只能保存一条入库记录,并报错“已添加了具有相同键项”,不知何故:
For Each r In T1.Rows
'+++++++如果当前行条码已轮询过,则越过++++++++++
If tms.Contains(r("条码"))= False Then
tms.Add(r("条码"))
'+++++++添加入库记录+++++++++++++++++++++
cmd.CommandText = " INSERT INTO 入库记录表 (条码,类型,来源,日期,店铺,编码,数量,备注) VALUES(?,?,?,?,?,?,?,?,?)"
cmd.Parameters.Add("@条码",r("条码"))
cmd.Parameters.Add("@类型",TB1.VALUE)
cmd.Parameters.Add("@来源",ZY.value)
cmd.Parameters.Add("@日期",DTP.Value)
cmd.Parameters.Add("@店铺",user.name)
cmd.Parameters.Add("@编码",bm)
cmd.Parameters.Add("@数量",m)
cmd.Parameters.Add("@备注",TB2.VALUE)
cmd.ExecuteNonQuery
End If
Next