You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用JobDataBindingSource新增数据无法保存至数据库的求助

解决绑定数据源新增数据无法保存到数据库的问题
  • 核心修复:先结束编辑状态再执行更新
    点击BindingNavigatorAddNewItem后,新增的记录处于临时编辑状态,并未真正提交到DataTable中,直接调用Update不会同步到数据库。需要先结束绑定源的编辑流程:

    Private Sub TextBox1_Leave(sender As Object, e As EventArgs) Handles TextBox1.Leave
        ' 结束绑定源编辑,将新增/修改数据提交到DataTable
        JobDataBindingSource.EndEdit()
        ' 同步数据到数据库
        Me.Job_DataTableAdapter.Update(Me.TravelerDataSet1.Job_Data)
        ' 确认DataSet接受变更,避免重复提交(可选)
        Me.TravelerDataSet1.Job_Data.AcceptChanges()
    End Sub
    
  • 更合理的触发方式:用BindingNavigator保存按钮执行保存
    相比TextBox的Leave事件,用户主动点击保存按钮的操作更符合使用习惯,也能避免未完成输入时误触发保存:

    Private Sub BindingNavigatorSaveItem_Click(sender As Object, e As EventArgs) Handles BindingNavigatorSaveItem.Click
        ' 验证所有绑定控件的输入合法性
        Me.Validate()
        ' 结束绑定源的编辑状态
        JobDataBindingSource.EndEdit()
        ' 执行数据库更新
        Me.Job_DataTableAdapter.Update(Me.TravelerDataSet1.Job_Data)
    End Sub
    
  • 额外排查方向

    1. 检查TableAdapter命令配置:打开DataSet设计器,右键Job_DataTableAdapter选择「配置」,确认已生成InsertCommand、UpdateCommand、DeleteCommand——这些命令缺失会导致TableAdapter无法与数据库交互。
    2. 数据库文件复制属性问题:如果是本地数据库(如Access、SQL Server Compact),找到项目中的数据库文件,查看其「复制到输出目录」属性。若设置为「始终复制」,每次运行程序都会覆盖输出目录的数据库,导致保存的数据被清空,建议改为「如果较新则复制」或「从不复制」。

内容的提问来源于stack exchange,提问作者bgm1956

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.27 08:42:08