Guardar registros en Base Datos Visual Studio 2010

Tengo un único formulario en el que tengo un DataGridView y 4 TextBox y una base de datos Repuestos. Accdb, cuando hice la conexión con mi base de datos me copió la base de datos en el directorio raíz de mi aplicación, pero el problema estriba en que cuando voy a guardar un nuevo registro además de pasarlo a la DataGrid (que así está bien) me crea una copia de la base de datos en el directorio \bin\debug\ y aquí es donde me guarda los nuevos registros con los viejos, pero cuando vuelvo a ejecutar la aplicación sólo veo los registros viejos porque el DataSet está dirección así a la base de datos del directorio raíz, y por más que lo cambio o hago nuevas conexiones siempre hace lo mismo.

Por favor alguien me puede ayudar a solucionar este problema, no me importa donde esté la base de datos mientras pueda ver todos los registros en la DataGrid

1 respuesta

Respuesta
1

Cuando vas a crear la conexión, al agregar nuevo origen de datos, ¿no te pregunta si quieres hacer una copia de la base de datos dentro de tu proyecto y modificar la conexión?

En ese momento, yo le diría que no, que la base de datos la mantenga donde está.

En teoría debe valer así.

Pues la verdad que he echo la conexión muchas veces y nunca me a pedido si quiero hacer una copia de mi base de datos.

y también pasa que cuando ingreso nuevos registros cierro mi proyecto y con access miro la base de datos y los nuevos registros están en la base de datos en bin/debug vuelvo a ejecutar la aplicación y los nuevos registros no aparecen en el DataGrid y vuelvo a mirar la base de datos con acces y han desaparecido todos los registros nuevos, como puede pasar eso?

gracias

Creo que tienes un conflicto entre las dos bases de datos, la que está editando el programa en /bin/debug y la original.

Borra la de /bin/debug, borra también la conexión y crea de nuevo toda la conexión desde la pestaña de Orígenes de datos. Si te pide copiar a un recurso local, le dices que no. Luego configura el origen de datos con el asistente (el tercer icono, que tiene un tick verde)

Los controles asociados a datos, arrástralos desde la propia pestaña de Orígenes de datos al Formulario, una vez la conexión esté lista.

También puedes trastear un poco con el Explorador de bases de datos, donde puedes Modificar conexión y ver exactamente dónde está apuntando la conexión.

Como última prueba, si no sale, haz un proyecto totalmente nuevo, con una tabla access nueva, y observa si te pasa lo mismo para descartar que hayas configurado algo mal.

Hola primero tengo que decirte que no tengo ninguna pestaña de orígenes de datos, tampoco tengo ningún icono con el tick verde ni tampoco veo por ningún sitio el explorador de bases de datos.

de todas formas voy a hacer una nueva base de datos con la única tabla que tiene y haré una nueva conexión y comprobare si me hace una copia de la base de datos, tengo que decirte que el DataSet tiene direccionado la base de datos en el directorio raíz   Y cuando ejecuto el programa para probarlo veo los registros de la base de datos que existe en ese directorio, cuando lo pruebe si sigue igual, te importaría echarle un vistazo a mi proyecto para ver que le pasa?.

gracias

http://www.mediafire.com/download/2gmtu8o0159tjiu/BBDD_Access.rar 

Este me funciona bien, si quieres pruébalo.

¡Gracias! Lo probare y ya te diré como funciona

Gracias funciona perfectamente, era como decías he vuelto a hacer la conexión y que no me rehiciera la conexión que yo decidí y funciona perfectamente ya que ahora no me copia la base de datos.

Gracias.

Y ahora otra consulta si no te molesta, tengo el DataGrid 4 TextBox y un botón en el formulario, marco una fila en el DataGrid y el registro de esa fila (tiene 4 datos) me los para a los TextBox (cada uno de los datos en su sitio) pero ahora no se como hacer para que cuando modifique el registro correspondiente pulse el botón Modificar me sustituya este registro modificado por el otro sin que se repita el registro.

Gracias y espero si puedes tu ayuda

Asumo que los 4 Textbox están enlazados a la conexión, por lo que si cambias los valores en ellos, automáticamente pasan a la base de datos.

Lo que puede que te pase es que no actualice el DataGrid justo cuando cambias los valores de los Textbox; la solución es forzar al DataGrid a actualizarse:

Me. Table1DataGridView. Refresh()

No está enlazado a la conexión (como al guardar Nuevos registros que lo hice con códigos, lo único enlazado es la DataGrid)

También tengo que decirte que el parar un registro del DataGrid a los TextBox lo hago mediante código

La verdad es que te ahorrarías mucho trabajo si tuvieras los controles enlazados a datos automáticamente. Visual Basic 2010 es de las pocas cosas que tiene que me gusta, por eso no necesito controlar demasiado del código "a pelo".

Por supuesto, si prefieres trabajar con el código, tampoco está mal, es como te sientas más cómodo -o como saques el trabajo adelante.

Te aconsejo que crees una nueva pregunta, pongas el código que ya tienes y donde crees que puede estar el fallo; así a ver si lo sacamos y/o nos echa una mano algún "code monkey".

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas