Usuario
Ayuda para Actualizar Base de Datos Acces 2007 en Visual Studio 2008 Profesional

Pregunta
-
Hola foro MSDN ne cesito su ayuda estoy creando un proyecto en visual studio 2008 con una base de datos acces 2007, el problema que tengo es que no logro actualizar la base de datos, el en lace a la base de datos lo hice con el diseñador y al al insertar los campos al formulario me origino un dataset, tableadapter, tableadaptermanager, bindingnavigator y un bindingsource por lo que al agregar un nuevo registro si lo hace en el momento de ejecucion pero no actualiza la base de datos,tambien lo he intentado con un dagridview, el codigo para actualizar la base de datos es uno que copie de este foro, espero su ayuda, Gracias.
Todas las respuestas
-
Hola. ¿Podrías poner un ejemplo del código que utilizas para actualizar tubase de datos?Saludos.
Fernando Gómez
fermasmas.wordpress.com -
hola fernando gracias por responder, el codigo que utilizo es igual al que copie de este foro pero con diferente nombre en la base de datos y la tabla, el codigo que agrego al boton para actualizar la base de datos es:
Try Me .Validate() Me .CustomersBindingSource.EndEdit() Me .CustomersTableAdapter.Update(Me .NorthwindDataSet.Customers) MsgBox("Update successful" ) Catch ex As Exception MsgBox("Update failed" ) End Try
-
Hola fernando en mi formulario estoy usando 3 texbox para la manipulacion de los datos ya estan enlazados a la base de datos, elcodigo general del proyecto es el siguiente espero me puedas ayudar:
Imports System.Data.OleDb
Public Class Form1
Private Sub Form1_FormClosing(ByVal sender As Object, ByVal e As System.Windows.Forms.FormClosingEventArgs) Handles Me.FormClosing
Me.ClientesBindingSource.EndEdit()
Me.ClientesTableAdapter.Update(MisclientesDataSet.clientes)
End Sub
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
'TODO: esta línea de código carga datos en la tabla 'MisclientesDataSet.clientes' Puede moverla o quitarla según sea necesario.
Me.ClientesTableAdapter.Fill(Me.MisclientesDataSet.clientes)
End Sub
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles actualizar.Click
'Este es el codigo para actualizar la base de datos:
Try
Validate()
ClientesBindingSource.EndEdit()
ClientesTableAdapter.Update(MisclientesDataSet.clientes)
MsgBox("Update successful")
Catch ex As Exception
MsgBox("Update failed")
End Try
End Sub
End Class -
"Fonso_100" escribió:
> estoy creando un proyecto en visual studio 2008 con una base de datos acces 2007,
> el problema que tengo es que no logro actualizar la base de datos, ...Hola:
El problema entiendo que no es del código que estás ejecutando, si no de la ruta de la base de datos que estás intentando actualizar.
A la hora de crear el origen de datos, ¿has indicado copiar el archivo de Access al proyecto y modificar la conexión? Si la respuesta es afirmativa, haz lo siguiente:
- Selecciona la ventana Explorador de soluciones.
- Selecciona el archivo de Access y pulsa la tecla F4.
- En la propiedad Copiar en el directorio de resultados, selecciona la opción «Copiar si es posterior».
Mira a ver si con estas modificaciones puedes ver los nuevos registros añadidos al ejecutar de nuevo el proyecto en el IDE de Visual Studio.
Vamos a suponer que a la hora de crear la base de datos, has seleccionado la base de datos de Access 2007 que se encuentra en
C:\Mis documentos\Database1.accdb
Ese será el valor que tenga el parámetro «Data Source» de la cadena de conexión, y será en esa base donde se produzcan las actualizaciones que efectúes mientras diseñas tu aplicación en el IDE de Visual Studio.
Pero si has decidido añadir la base de datos al proyecto, entonces las modificaciones se efectuarán en la base de datos existente en la carpeta Debug o Release, dependiendo de la configuración que estés ejecutando en el IDE de Visual Studio. Si posteriormente haces modificacones en la base de datos original, es decir, en la base de datos existente en la carpeta
C:\Documents and Settings\Fonso_100\Mis documentos\
Visual Studio 2008\Projects\NombreProyecto\Database1.accdbCuando pulses de nuevo F5 en el IDE de Visual Studio, se copiará de nuevo la base de datos original en la carpeta Debug o Release, sustituyendo sin previo aviso a la existente en la carpeta de resultados.
De todas maneras este comportamiento sólo sucede cuando estás ejecutando tu aplicación desde el propio IDE de Visual Studio. Una vez que finalices tu aplicación y ejecutes directamente el archivo ejecutable, la base de datos que se tomará será aquella que se encuentre en la misma carpeta que el archivo EXE de tu aplicación, siempre y cuando hayas añadido la base de datos al proyecto, como así parece ser que ha sucedido.
Piensa que mientras te encuentras en el IDE de Visual Studio, se comprende que estás diseñando tu aplicación, y esas inserciones de datos o actualizaciones de los mismos que efectúas, son a modo de prueba o ensayo. Si no deseas que sea así, entonces tienes que efectuar las modificacones en la base de datos original, es decir, la existente en
C:\Documents and Settings\Fonso_100\Mis documentos\
Visual Studio 2008\Projects\NombreProyecto\Database1.accdbpara que no se pierdan las modificaciones efectuadas cuando pulsas F5 en el IDE de Visual Studio.
Un saludo
Enrique Martínez [MS MVP - VB]- Propuesto como respuesta Enrique M. Montejo sábado, 25 de septiembre de 2010 11:07
-
-
"Fonso_100" escribió:
> muchas gracias por tu aporte, por fin pude resolver el problema,
> ahora si se actualiza la base de datosMe alegro que mi respuesta haya servido para resolver el problema. Ahora, si lo crees conveniente, marca mi respuesta como satisfactoria para dar por finalizada ésta conversación o pregunta planteada. ¿OK?
Enrique Martínez [MS MVP - VB] -