Foros del Web » Programación para mayores de 30 ;) » .NET »

Actualizar Tabla Access en visual basic .Net

Estas en el tema de Actualizar Tabla Access en visual basic .Net en el foro de .NET en Foros del Web. 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 ...
  #1 (permalink)  
Antiguo 04/09/2006, 08:42
 
Fecha de Ingreso: noviembre-2002
Mensajes: 198
Antigüedad: 21 años, 6 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
  #2 (permalink)  
Antiguo 04/09/2006, 20:56
 
Fecha de Ingreso: agosto-2006
Ubicación: en lima peru
Mensajes: 184
Antigüedad: 17 años, 8 meses
Puntos: 0
Cita:
Iniciado por dixie Ver Mensaje
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

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

dbDataAdapter.fill(dts,"Nacidos")
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


Has utilizado el metodo fill del dataadapter
  #3 (permalink)  
Antiguo 04/09/2006, 20:58
 
Fecha de Ingreso: agosto-2006
Ubicación: en lima peru
Mensajes: 184
Antigüedad: 17 años, 8 meses
Puntos: 0
Solucion

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

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

dbDataAdapter.fill(dts,"Nacidos")
dts.Tables.Add(dt)
  #4 (permalink)  
Antiguo 26/05/2009, 20:00
 
Fecha de Ingreso: mayo-2009
Mensajes: 1
Antigüedad: 15 años
Puntos: 0
Pregunta

por ejemplo hago una consulta para mostrar un dato que busqué asi cmo el siguiente codigo:


Private dt As DataTable
Private da As OleDb.OleDbDataAdapter
Private fila As Integer

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Dim sCnn As String = "Provider=Microsoft.ACE.OLEDB.12.0; Data Source=C:\BaseDatos.accdb"
Dim sSel As String = "SELECT * FROM compras where cod_proveedor = " & TextBox5.text & " ORDER BY cod_compra"
da = New OleDb.OleDbDataAdapter(sSel, sCnn)
dt = New DataTable
da.Fill(dt)
mostrardatos() mi duda es aqui como se que fila da el resultado de la busqueda????
End Sub

Private Sub mostrardatos(ByVal f As Integer)
Dim uf As Integer = dt.Rows.Count - 1
If f < 0 OrElse uf < 0 Then Exit Sub
Dim dr As DataRow = dt.Rows(f)
TextBox1.Text = dr("Cod_compra").ToString
TextBox2.Text = dr("cod_provee").ToString
TextBox3.Text = dr("cod_factura").ToString
TextBox4.Text = dr("no_factura").ToString
End Sub



porfavor me pueden ayudar!!!!
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 13:55.