用dataset保存数据注意的问题

Private Function Save() As Boolean
        Try
            Dim dschgs As DataSet = ds.GetChanges(DataRowState.Added + DataRowState.Deleted + DataRowState.Modified)
            Dim da As OleDb.OleDbDataAdapter = New OleDb.OleDbDataAdapter("select lotno,isconfirm, confirmuser, confirmdate, eventuser, eventdate from cuttoship", oracleConn)
            Dim cmbCDDetail As OleDb.OleDbCommandBuilder = New OleDb.OleDbCommandBuilder(da)
            da.Update(dschgs, "cuttoship")
            ds.AcceptChanges()
            Return True
        Catch ex As Exception
            Return False
        End Try
    End Function
Private Sub btnUnConfirm_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnUnConfirm.Click
        Dim confirmTb As DataTable = gGrid.getCurrData(dgv)
        Dim r_confirm() As DataRow = confirmTb.Select("s_select='True' and isconfirm='Y'")
        If r_confirm.Length = 0 Then
            MessageBox.Show("no seleted data.")
            Return
        End If
        If MessageBox.Show("Do you want to confirm these record?", "Confirm Sure", MessageBoxButtons.YesNo, MessageBoxIcon.Question, MessageBoxDefaultButton.Button2) = DialogResult.No Then Return

        Try
            Dim sql As String = ""
            Dim time As String = Now.ToString("yyyy-MM-dd HH:mm:ss")
            Dim row() As DataRow
            For Each r As DataRow In r_confirm
                row = ds.Tables("cuttoship").Select("lotno='" + r.Item("lotno") + "'")
                row(0).BeginEdit()
                row(0).Item("isconfirm") = "N"
                row(0).Item("confirmuser") = DBNull.Value
                row(0).Item("confirmdate") = DBNull.Value
                row(0).Item("eventuser") = g.gUserId
                row(0).Item("eventdate") = time
                row(0).EndEdit()
            Next
            If Save() Then
                MessageBox.Show("Confirm successfully!")
            Else
                MessageBox.Show("Confirm failed!")
                ds.RejectChanges()
            End If
        Catch ex As Exception
            MessageBox.Show("Un Confirm failed!")
            ds.RejectChanges()
        End Try
    End Sub

用dataset保存数据不能存在空的数据,必须用DBNull.Value代替,否则出现“并行违规”的异常。

目标表必须有主键,否则出现“对于不返回任何键列信息的SelectCommand,不支持UpdateCommand 的动态SQL生成”的异常。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值