데이터셋으로 데이터 저장 주의사항

8748 단어 Data
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

데이터셋으로 데이터를 저장할 때 빈 데이터가 존재할 수 없습니다. DBNull을 사용해야 합니다.Value로 대체합니다. 그렇지 않으면 병렬 위반 예외가 발생합니다.
타겟 테이블에는 주 키가 있어야 합니다. 그렇지 않으면 "키 열 정보를 반환하지 않는 SelectCommand의 경우 UpdateCommand의 동적 SQL 생성이 지원되지 않습니다."이상합니다.

좋은 웹페이지 즐겨찾기