Foxtable(狐表)用户栏目专家坐堂 → Insert 语句如何循环?


  共有1906人关注过本帖树形打印复制链接

主题:Insert 语句如何循环?

帅哥哟,离线,有人找我吗?
石四
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:四尾狐 帖子:972 积分:7048 威望:0 精华:0 注册:2013/3/31 10:33:00
Insert 语句如何循环?  发帖心情 Post By:2019/7/29 14:47:00 [只看该作者]

If MsgBox("确认保存数据?",65,"提示") = 1 Then
    Dim cmd As New SQLCommand
    cmd.Conn e
    Dim i As Integer
    For i = 0 To 2
        cmd.CommandText = "Insert Into {销售单} ([日期],[出库单号],[客户名称]) Values(?,?,?)"
        cmd.Parameters.Add("@日期",2019-07-29)
        cmd.Parameters.Add("@出库单号",i)
        cmd.Parameters.Add("@客户名称","kumc")
    Next
    If cmd.ExecuteNonQuery = 1 Then '返回1表示增加成功
        MessageBox.Show("销售单保存成功")
    End If
End If

提示“...已添加相同的键”

 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:107813 积分:548416 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2019/7/29 14:48:00 [只看该作者]

For i = 0 To 2
cmd.Parameters.clear
        cmd.CommandText = "Insert Into {销售单} ([日期],[出库单号],[客户名称]) Values(?,?,?)"
        cmd.Parameters.Add("@日期",2019-07-29)
        cmd.Parameters.Add("@出库单号",i)
        cmd.Parameters.Add("@客户名称","kumc")
    Next

 回到顶部
帅哥哟,离线,有人找我吗?
石四
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:四尾狐 帖子:972 积分:7048 威望:0 精华:0 注册:2013/3/31 10:33:00
  发帖心情 Post By:2019/7/29 15:12:00 [只看该作者]

If MsgBox("确认保存数据?",65,"提示") = 1 Then
    Dim cmd As New SQLCommand
    cmd.Connecti
    Dim i As Integer
    For i = 1 To 4
        cmd.Parameters.clear
        cmd.CommandText = "Insert Into {销售单} ([日期],[出库单号],[客户名称]) Values(?,?,?)"
        cmd.Parameters.Add("@日期",Date.Today())
        cmd.Parameters.Add("@出库单号",i)
        cmd.Parameters.Add("@客户名称","kumc")
    Next
    If cmd.ExecuteNonQuery = 1 Then '返回1表示增加成功
        MessageBox.Show("销售单保存成功")
    End If
End If

这样的结果只Insert最后一行,“出库单号=4”.

 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:107813 积分:548416 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2019/7/29 15:19:00 [只看该作者]

If MsgBox("确认保存数据?",65,"提示") = 1 Then
    Dim cmd As New SQLCommand
    cmd.Connecti
    Dim i As Integer
    For i = 1 To 4
        cmd.Parameters.clear
        cmd.CommandText = "Insert Into {销售单} ([日期],[出库单号],[客户名称]) Values(?,?,?)"
        cmd.Parameters.Add("@日期",Date.Today())
        cmd.Parameters.Add("@出库单号",i)
        cmd.Parameters.Add("@客户名称","kumc")
cmd.ExecuteNonQuery
    Next
End If

 回到顶部
帅哥哟,离线,有人找我吗?
石四
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:四尾狐 帖子:972 积分:7048 威望:0 精华:0 注册:2013/3/31 10:33:00
  发帖心情 Post By:2019/7/29 16:03:00 [只看该作者]

蓝版,添加cmd.ExecuteNonQuery后最后一行会重复Insert.
 比如:For i = 1 To 2,会Insert三行,两行的“出库单号”=2


 回到顶部
帅哥哟,离线,有人找我吗?
石四
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:四尾狐 帖子:972 积分:7048 威望:0 精华:0 注册:2013/3/31 10:33:00
  发帖心情 Post By:2019/7/29 16:05:00 [只看该作者]


 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:107813 积分:548416 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2019/7/29 16:18:00 [只看该作者]

4楼的代码不可能有这个问题。贴出有问题的代码

 回到顶部
帅哥哟,离线,有人找我吗?
石四
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:四尾狐 帖子:972 积分:7048 威望:0 精华:0 注册:2013/3/31 10:33:00
  发帖心情 Post By:2019/7/29 16:50:00 [只看该作者]

测试4楼的代码,确实没有问题。

 回到顶部
帅哥哟,离线,有人找我吗?
石四
  9楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:四尾狐 帖子:972 积分:7048 威望:0 精华:0 注册:2013/3/31 10:33:00
  发帖心情 Post By:2019/7/29 16:52:00 [只看该作者]

If MsgBox("确认保存数据?",65,"提示") = 1 Then
    Dim cmd As New SQLCommand
    cmd.Connectio
    Dim i As Integer
    For i = 1 To 2
        cmd.Parameters.clear
        cmd.CommandText = "Insert Into {销售单} ([日期],[出库单号],[客户名称]) Values(?,?,?)"
        cmd.Parameters.Add("@日期",Date.Today())
        cmd.Parameters.Add("@出库单号",i)
        cmd.Parameters.Add("@客户名称","kumc")
        cmd.ExecuteNonQuery
    Next
    If cmd.ExecuteNonQuery = 1 Then '返回1表示增加成功
        MessageBox.Show("销售单保存成功")
    End If
End If

这个多了:
 If cmd.ExecuteNonQuery = 1 Then '返回1表示增加成功
        MessageBox.Show("销售单保存成功")
    End If

会重复

 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  10楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:107813 积分:548416 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2019/7/29 17:14:00 [只看该作者]

既然知道会重复就不要了咯。

 回到顶部