No se me actualiza la BD - VB.net

Me estoy iniciando VB.NET y estoy atascado con las Bases de Datos.
(Como hecho de menos VB6). Espero me puedas ayudar.
Estoy usando Visual Basic Express 2008. Quiero mediante sólo código
Manipular una Base de Datos de Access 2007.
Es un mini programilla solo con las declaraciones imprescindible para funcionar.
Todo me va bien, me pilla las altas, las modificaciones, bajas,
pero no encuentro el modo de actualizar la Base de datos por más que he buscado.
La mayoría de los ejemplos deben ser de otra versión de VB porque me dan errores.
Te dejo el código haber si me lo puedes corregir. Gracias.
Dim MiConexion As OleDb.OleDbConnection
Dim MiDataAdapter As OleDb.OleDbDataAdapter
Dim MiDataSet As DataSet
Dim MiDataTable As DataTable
Dim MiDataRow As DataRow
Dim MiPath As String
Dim MiBD_Access As String
Dim StrConexion As String
Dim MiSql As String
Dim Fila As Integer
Private Sub Form1_Load(ByVal sender As Object, _
ByVal e As System.EventArgs) Handles Me.Load
MiBD_Access = "\BD_2007.accdb"
MiPath = CurDir()
StrConexion = ("Provider=Microsoft.ACE.OLEDB.12.0;Data Source= _
" & MiPath & MiBD_Access & ";Persist Security Info=False")
MiConexion = New OleDb.OleDbConnection
MiConexion.ConnectionString = StrConexion
MiConexion.Open()
MiSql = "Select Cod, Titulo from Tabla1 ORDER BY COD"
MiDataAdapter = New OleDb.OleDbDataAdapter(MiSql, MiConexion)
MiDataSet = New DataSet
MiDataAdapter.Fill(MiDataSet)
MiDataTable = New DataTable
MiDataAdapter.Fill(MiDataTable)
Dim Micommandbuilder As New OleDb.OleDbCommandBuilder(MiDataAdapter)
Fila = 1
Dim MidataRow As DataRow = MiDataTable.Rows(Fila)
MidataRow.Delete()
MiDataAdapter.Update(MiDataSet)
MiDataTable. AcceptChanges()
Miconexion. Close()
End Sub

1 respuesta

Respuesta
1
¿Con qué código estas intentando actualizar los datos? no veo la sentencia sql UPDATE? Si te da error en que linea y el mensaje que arroja.
Gracias por contestar. El código no me da ningún error y el Dataset se modifica al dar de baja el registro (o Rows). Cuando consulto la tabla con este código:
Private Sub ButAdelante_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ButAdelante.Click
        Dim uf As Integer = MiDataTable.Rows.Count - 1
        Fila = Fila + 1
        If Fila > uf Then Fila = uf
        mostrarDatos(Fila)
    End Sub
Visualizo la modificaciones, pero al cerrar(Salir del programa) la Base de datos "real" no la desconectada, no se me ha actualizado y sigue igual que antes.
No se si falta algo, como te digo estoy aprendiendo por libre y tampoco tengo grandes pretensiones, pero me hago algún programilla para mi uso en la empresa.
Tu base ded atos la tienes dentro del proyecto, ¿no sera que cada vez que compilas se reemplaza el archivo de la base de datos?
No, es una BD creada por medio de Access.
El código esta copiado de la página de "el Guille" pero no es idéntico porque el suyo me da errores, supongo que será problemas de diferentes versiones de Visual.
Como uso la 2008 Express no se si esta restringida en algo, aunque he leído que no...
Como trabajas con un dataadapter, que yo no te lo recomendaría, debes primero aceptar los cambios, luego hacer el update de tabla, no recuerdo, porque yo no utilizo ese control que hay un método SaveAll utilizalo también y luego si cierras el control.
Dices que no trabajas con dataadapter, pero estoy leyendo que es imprescindible para la conexión con la BD. ¿Cómo lo haces tu?
El objeto dataadapter solo es imprescindible si vas allenar un datatable o un dataset, de lo contrario no es necesario.
¿Trabajas a base de sentencias SQL?
Así es, lo trabajado con objetos command de ADO.NET y para extarer datos con datareader

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas