以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  百思不得其解!  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=138336)

--  作者:石四
--  发布时间:2019/7/29 9:53:00
--  百思不得其解!
If MsgBox("确认保存数据?",65,"提示") = 1 Then
    Dim cmd As New SQLCommand
    cmd.C
    cmd.CommandText = "Insert Into {销售单} ([日期],[出库单号],[客户名称]) Values(?,?,?)"
    cmd.Parameters.Add("@日期",2019-07-29)
    cmd.Parameters.Add("@出库单号",0001)
    cmd.Parameters.Add("@客户名称","kumc")
    cmd.ExecuteNonQuery
    If cmd.ExecuteNonQuery = 1 Then \'返回1表示增加成功
        MessageBox.Show("销售单保存成功")
    End If
End If

结果重复insert了两行数据!

--  作者:wei0769
--  发布时间:2019/7/29 10:26:00
--  

图片点击可在新窗口打开查看此主题相关图片如下:tim截图20190729102539.png
图片点击可在新窗口打开查看

--  作者:石四
--  发布时间:2019/7/29 10:28:00
--  
   cmd.Co nnecti
是这个,指定数据源

--  作者:石四
--  发布时间:2019/7/29 10:38:00
--  
If MsgBox("确认保存数据?",65,"提示") = 1 Then
Dim cmd As New SQLCommand
cmd.Conn
cmd.CommandText = "Insert Into {销售单} ([日期],[出库单号],[客户名称])  Values( \'" & Date.today() & "\', \'" & "33" & "\', \'" & "ggg" & "\') "
If cmd.ExecuteNonQuery = 1 Then \'返回1表示增加成功
 MessageBox.Show("销售单保存成功")
    End If
End If

这种写法正常。
难道上面参数化写法不正确?

--  作者:石四
--  发布时间:2019/7/29 11:02:00
--  
原因找到了,多了这行: cmd.ExecuteNonQuery