Ver Mensaje Individual
  #1 (permalink)  
Antiguo 04/09/2006, 08:42
dixie
 
Fecha de Ingreso: noviembre-2002
Mensajes: 198
Antigüedad: 21 años, 7 meses
Puntos: 0
Actualizar Tabla Access en visual basic .Net

Hola a todos, tengo la siguiente funcion a la que le pasa un dataTable, que he comprobado tiene valores y le paso el nombre de la tabla que quiero actualizar pero no me funciona. No me rellena la tabla, la tabla sigue vacia. Alguien tiene alguna sugerencia ???

Public Sub ActualizarBaseDeDatos(ByRef dt As DataTable, ByVal tableName As String)
Dim conn As OleDbConnection


Dim da As OleDbDataAdapter
Dim CadenaConexion As String
Dim CadenaSelect As String

If conn Is Nothing Then
conn = New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0; Password="""";User ID=Admin;" & _
"Data Source=c:\dbDatosBrutos.mdb;Mode=Share Deny None;Ext" & _
"ended Properties="""";Jet OLEDB:System database="""";Jet OLEDB:Registry Path="""";Jet " & _
"OLEDB:Database Password="""";Jet OLEDB:Engine Type=4;Jet OLEDB:Database Locking Mo" & _
"de=0;Jet OLEDB:Global Partial Bulk Ops=2;Jet OLEDB:Global Bulk Transactions=1;Je" & _
"t OLEDB:New Database Password="""";Jet OLEDB:Create System Database=False;Jet OLED" & _
"B:Encrypt Database=False;Jet OLEDB:Don't Copy Locale on Compact=False;Jet OLEDB:" & _
"Compact Without Replica Repair=False;Jet OLEDB:SFP=False")

conn.Open()


Dim sSel As String = "SELECT * FROM " & tableName
Dim dbDataAdapter As OleDbDataAdapter
Dim dts As New DataSet("Nacidos")

' Crear un nuevo objeto del tipo DataAdapter
dbDataAdapter = New OleDbDataAdapter(sSel, conn)


dts.Tables.Add(dt)


' Crear los comandos de insertar, actualizar y eliminar
Dim cb As New OleDbCommandBuilder(dbDataAdapter)

dbDataAdapter.MissingSchemaAction = MissingSchemaAction.AddWithKey
Try
dbDataAdapter.UpdateCommand = cb.GetUpdateCommand
dbDataAdapter.InsertCommand = cb.GetInsertCommand
dbDataAdapter.DeleteCommand = cb.GetDeleteCommand
Catch ex As System.InvalidOperationException
MsgBox(ex.ToString)
End Try



Try
dbDataAdapter.Update(dts, tableName)
Catch ex As System.InvalidOperationException
MsgBox(ex.ToString)
Exit Sub
Catch ex As System.Data.OleDb.OleDbException
MsgBox("Debe cerrar todas las aplicaciones Access")
Exit Sub
End Try

dts.AcceptChanges()
conn.Close()

End If





End Sub