估计你没有理解好我的意思,给你个函数看看吧!!希望能帮助你一下。
Public Overloads Function Update_Out(ByVal str As String, ByVal updatedset As DataSet, ByVal Table_name As String) As String
'返回值是错误说明
'updatedset 为修改后的dataset
Dim i, j As Integer
Dim dcon As OleDbConnection
Dim dada As New OleDbDataAdapter()
Dim ObjTrans As OleDbTransaction
Dim dset As New DataSet()
Dim NewRow As DataRow
Try
dcon = New OleDbConnection(OleConnectionStr)
'dada = New OleDbDataAdapter(str, dcon)
dada.SelectCommand = New OleDbCommand(str, dcon)
dada.Fill(dset, Table_name) 'dset为原来的数据
'dada.Fill(dset) 'dset为原来的数据
Dim dcb As New OleDbCommandBuilder(dada)
'dset = updatedset '请注意这一行,updatedset是经过修改后的数据,取代本来的dset
'If updatedset.HasChanges = True Then
For i = 0 To dset.Tables(Table_name).Rows.Count - 1
dset.Tables(Table_name).Rows(i).Delete()
Next
For i = 0 To updatedset.Tables(Table_name).Rows.Count - 1
If updatedset.Tables(Table_name).Rows(i).RowState <> DataRowState.Deleted Then
NewRow = dset.Tables(Table_name).NewRow
For j = 0 To updatedset.Tables(Table_name).Columns.Count - 1
NewRow.Item(j) = updatedset.Tables(Table_name).Rows(i).Item(j)
'dset.Tables(Table_name).Rows(i).Item(j) = updatedset.Tables(Table_name).Rows(i).Item(j)
Next
dset.Tables(Table_name).Rows.Add(NewRow)
End If
Next
dada.Update(dset, Table_name)
'ObjTrans.Commit()
'End If
dada.Dispose()
dcb.Dispose()
dcon.Close()
Return ""
Catch ex As Exception
'ObjTrans.Rollback()
dada.Dispose()
dcon.Close()
OleDbConnection1.Open()
Dim UpdatedRows As System.Data.DataSet
Dim InsertedRows As System.Data.DataSet
Dim DeletedRows As System.Data.DataSet ‘定义三个数据集存数据的状态