以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  事务提交主表与明细表 出错  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=133130)

--  作者:aoc103
--  发布时间:2019/4/7 21:42:00
--  事务提交主表与明细表 出错
Try
    Connections("sqldata").BeginTransaction() \'开始事务
    Dim cmd As new SQLCommand
    cmd.C
\'以下保存主表数据
    cmd.CommandText = "INSERT INTO [tbl_出入库_主表] (单据编号,日期,填单员,单据类型,入库原因,备注) values (?,?,?,?,?,?)"
    cmd.Parameters.Add("@单据编号",e.Form.Controls("TextBox1").value)
    cmd.Parameters.Add("@日期",e.Form.Controls("DateTimePicker1").value)
    cmd.Parameters.Add("@填单员",e.Form.Controls("TextBox2").value)
    cmd.Parameters.Add("@单据类型",e.Form.Controls("TextBox3").value)
    cmd.Parameters.Add("@入库原因",e.Form.Controls("TextBox4").value)
    cmd.Parameters.Add("@备注",e.Form.Controls("TextBox5").value)
    cmd.ExecuteNonQuery
\'以下保存明细表数据
    For Each r As Row In Tables("出入库_明细").Rows
        \'Dim spbh = r("商品编号") As Row \'定义商品编号行
        \'Dim dw = r("单位")  As Row 
        \'Dim scrq r("生产日期")  As Row 
        \'Dim sh r("色号")  As Row 
        \'Dim shbz r("色号备注")  As Row 
        \'Dim sl r("数量") As Row 
        \'Dim bz r("备注") As Row 
        \'Dim kw r("库位") As Row 
        \'Dim dj r("等级") As Row 
        Dim djbh As String =e.Form.Controls("TextBox3").value \'
    cmd.CommandText = "INSERT INTO [tbl_出入库_明细] (商品编号,单位,生产日期,色号,色号备注,数量,备注,库位,等级,单据编号) values (?,?,?,?,?,?,?,?,?,?)"
        cmd.Parameters.Add("@商品编号",r("商品编号"))
        cmd.Parameters.Add("@单位",r("单位"))
        cmd.Parameters.Add("@生产日期",r("生产日期"))
        cmd.Parameters.Add("@色号",r("色号"))
        cmd.Parameters.Add("@色号备注",r("色号备注"))
        cmd.Parameters.Add("@数量",r("数量"))
        cmd.Parameters.Add("@备注", r("备注"))
        cmd.Parameters.Add("@库位",r("库位"))
        cmd.Parameters.Add("@等级",r("等级"))
        cmd.Parameters.Add("@单据编号",djbh)
    cmd.ExecuteNonQuery
    Next

    Connections("sqldata").Commit \'提交事务,所有操作生效
    MessageBox.show("保存成功")
Catch ex As Exception \'如果出错 
    Connections("sqldata").Rollback() \'回滚事务,撤销所有操作
     MessageBox.Show("向服务器提交数据错误!","提示",MessageBoxButtons.OK)
End Try

--  作者:有点甜
--  发布时间:2019/4/7 21:46:00
--  

请弹出错误,如

 

Catch ex As Exception \'如果出错 
     msgbox(ex.message)
     Connections("sqldata").Rollback() \'回滚事务,撤销所有操作
     MessageBox.Show("向服务器提交数据错误!","提示",MessageBoxButtons.OK)
End Try

--  作者:aoc103
--  发布时间:2019/4/7 23:53:00
--  
你好 已经更改代码 跳出的错误 显示的是 “已添加了具有相同键的值” 请问 这个是什么情况 我在SQL 可以直接用INSERT INTO 语句写入数据
--  作者:aoc103
--  发布时间:2019/4/7 23:59:00
--  
表格使的是 绑定表模式 是不是要改成SQLTABLE 模式 还有 我明细表里有某些字段 只想在在窗口填表的时候显示,但保存的时候,只保存数据的主键即可,但在打开本窗口的时候,又能根据主键的数据显示明细数据
--  作者:aoc103
--  发布时间:2019/4/8 8:42:00
--  
现在找出原因 是两行SQL 语句都有参数 停用第一行 第二行就能使用。那要如何处理这个问题?
--  作者:有点甜
--  发布时间:2019/4/8 10:08:00
--  

cmd.ExecuteNonQuery

 

改成

 

cmd.ExecuteNonQuery

cmd.Parameters.clear