Foxtable(狐表)用户栏目专家坐堂 → 事务提交主表与明细表 出错


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

主题:事务提交主表与明细表 出错

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


加好友 发短信
等级:童狐 帖子:248 积分:2889 威望:0 精华:0 注册:2017/10/15 20:04:00
事务提交主表与明细表 出错  发帖心情 Post By: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

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2019/4/7 21:46:00 [只看该作者]

请弹出错误,如

 

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

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


加好友 发短信
等级:童狐 帖子:248 积分:2889 威望:0 精华:0 注册:2017/10/15 20:04:00
  发帖心情 Post By:2019/4/7 23:53:00 [只看该作者]

你好 已经更改代码 跳出的错误 显示的是 “已添加了具有相同键的值” 请问 这个是什么情况 我在SQL 可以直接用INSERT INTO 语句写入数据

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


加好友 发短信
等级:童狐 帖子:248 积分:2889 威望:0 精华:0 注册:2017/10/15 20:04:00
  发帖心情 Post By:2019/4/7 23:59:00 [只看该作者]

表格使的是 绑定表模式 是不是要改成SQLTABLE 模式 还有 我明细表里有某些字段 只想在在窗口填表的时候显示,但保存的时候,只保存数据的主键即可,但在打开本窗口的时候,又能根据主键的数据显示明细数据

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


加好友 发短信
等级:童狐 帖子:248 积分:2889 威望:0 精华:0 注册:2017/10/15 20:04:00
  发帖心情 Post By:2019/4/8 8:42:00 [只看该作者]

现在找出原因 是两行SQL 语句都有参数 停用第一行 第二行就能使用。那要如何处理这个问题?

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2019/4/8 10:08:00 [只看该作者]

cmd.ExecuteNonQuery

 

改成

 

cmd.ExecuteNonQuery

cmd.Parameters.clear


 回到顶部