No me funciona el Update para grabar un registro!

10/01/2006 - 05:44 por byrpa | Informe spam
Como ya les he contado estoy siguiendo paso a paso, el turorial de MSDN
Video, del cual he aprendido mucho, pero intente hacer una mi pequeña
aplicacion y resulta que cuando le doy el update, me graba todo bien, pero
temporalmente o sea en el dataset de la base (en el grid si aparecen), no a
la base en si, ya que cuando reviso dicha tabla atravez del VS no aparecen
los registros, los pasos que segui son exactamente los mismos del video,
estoy usando xp sp2, con visual basic 2005, la version final y sql express
2005 tambien la version final, la base de datos es un archivo que esta en el
proyecto tal como se dijo en el tutorial y los textbox solo los arrastre de
los dataset que habia creado previamente, hay algo que me falta?

Por aca esta el codigo:
Public Class regionesnuevo
Private Sub regionesnuevo_Load(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles MyBase.Load
Me.RegionesBindingSource.AddNew()
End Sub

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles Button1.Click
Me.Validate()
Me.RegionesBindingSource.EndEdit()
Me.RegionesTableAdapter.Update(Me.RegionesDS.regiones)
Me.Close()
End Sub

Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles Button2.Click
Me.Close()
End Sub
End Class

Gracias por sus respuestas

Preguntas similare

Leer las respuestas

#1 JunXCosio
10/01/2006 - 14:46 | Informe spam
muy bien el problema no lo tienes en el codigo lo tienes en la base de datos,
seleciona el fichero de base de datos en el "Solution Explorer" ejemplo el
"database1.mdf".

Y en propiedades veras una que dice "Copy to Output Directory" y te pondra
por defecto "Copy always". Pues esa opcion pon la a "Copy if newer" no me
preguntes porque cojones funciona de una manera y de la otra no pero el caso
es asi ...

Un saludo

"byrpa" escribió:

Como ya les he contado estoy siguiendo paso a paso, el turorial de MSDN
Video, del cual he aprendido mucho, pero intente hacer una mi pequeña
aplicacion y resulta que cuando le doy el update, me graba todo bien, pero
temporalmente o sea en el dataset de la base (en el grid si aparecen), no a
la base en si, ya que cuando reviso dicha tabla atravez del VS no aparecen
los registros, los pasos que segui son exactamente los mismos del video,
estoy usando xp sp2, con visual basic 2005, la version final y sql express
2005 tambien la version final, la base de datos es un archivo que esta en el
proyecto tal como se dijo en el tutorial y los textbox solo los arrastre de
los dataset que habia creado previamente, hay algo que me falta?

Por aca esta el codigo:
Public Class regionesnuevo
Private Sub regionesnuevo_Load(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles MyBase.Load
Me.RegionesBindingSource.AddNew()
End Sub

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles Button1.Click
Me.Validate()
Me.RegionesBindingSource.EndEdit()
Me.RegionesTableAdapter.Update(Me.RegionesDS.regiones)
Me.Close()
End Sub

Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles Button2.Click
Me.Close()
End Sub
End Class

Gracias por sus respuestas



Respuesta Responder a este mensaje
#2 Jesús López
10/01/2006 - 17:41 | Informe spam
David Sceppa explica el porqué:

http://forums.microsoft.com/msdn/sh...p;siteid=1
Respuesta Responder a este mensaje
#3 byrpa
11/01/2006 - 06:05 | Informe spam
Fijate que es como tu lo dices, pero estuve haciendo algunas pruebas y en la
opcion que mencionas de la propiedad de la base "Copy to Output
Directory=Copy if newer" me crea una copia de la base hacia el directorio
"D:\proyectos\inventario\bin\debug\smom.mdf" o sea que me pone una base
nueva y el programa trabaja con esa base aunque este especificado en la
propiedades que la base esta en "d:\proyectos\inventario" no la usa, por lo
tanto si me conecto con vb2005 siempre me aparecen los mismos registros que
antes porque es una base vieja, la actualizada esta en el directorio
mencionado, copiando todo el directorio "D:\proyectos\inventario\bin\debug",
hacia "c:\inventario", trabaja perfecto el exe con su base en el mismo
directorio, ahora bien alguien sabe como trabajar esto en red, hay que hacer
"conectar unidad de red", o como seria en este caso?


"JunXCosio" escribió en el mensaje
news:
muy bien el problema no lo tienes en el codigo lo tienes en la base de
datos,
seleciona el fichero de base de datos en el "Solution Explorer" ejemplo el
"database1.mdf".

Y en propiedades veras una que dice "Copy to Output Directory" y te pondra
por defecto "Copy always". Pues esa opcion pon la a "Copy if newer" no me
preguntes porque cojones funciona de una manera y de la otra no pero el
caso
es asi ...

Un saludo

"byrpa" escribió:

Como ya les he contado estoy siguiendo paso a paso, el turorial de MSDN
Video, del cual he aprendido mucho, pero intente hacer una mi pequeña
aplicacion y resulta que cuando le doy el update, me graba todo bien,
pero
temporalmente o sea en el dataset de la base (en el grid si aparecen), no
a
la base en si, ya que cuando reviso dicha tabla atravez del VS no
aparecen
los registros, los pasos que segui son exactamente los mismos del video,
estoy usando xp sp2, con visual basic 2005, la version final y sql
express
2005 tambien la version final, la base de datos es un archivo que esta en
el
proyecto tal como se dijo en el tutorial y los textbox solo los arrastre
de
los dataset que habia creado previamente, hay algo que me falta?

Por aca esta el codigo:
Public Class regionesnuevo
Private Sub regionesnuevo_Load(ByVal sender As System.Object, ByVal e
As
System.EventArgs) Handles MyBase.Load
Me.RegionesBindingSource.AddNew()
End Sub

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles Button1.Click
Me.Validate()
Me.RegionesBindingSource.EndEdit()
Me.RegionesTableAdapter.Update(Me.RegionesDS.regiones)
Me.Close()
End Sub

Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles Button2.Click
Me.Close()
End Sub
End Class

Gracias por sus respuestas



Respuesta Responder a este mensaje
#4 Jesús López
11/01/2006 - 12:20 | Informe spam
Para que tu aplicación funcione en red tienes que hacer lo siguiente:

(1) Instalar SQL Server 2005, edición Express o superior en un servidor de
la red.
(2) Habilitar el acceso remoto a SQL Server
(3) Copiar el archivo de base de datos mdf que tienes en tu proyecto en el
servidor de la red
(5) Anexar la base de datos mdf en el servidor.
(5) Conceder los permisos necesarios a los usuarios para que se conecten a
la base de datos y puedan realizar las tareas que necesitan hacer
(6) cambiar la cadena de conexión que aparece en el App.config para que haga
referencia al servidor de la red y a la base de datos en cuestión.

Estos pasos deberías hacerlos antes de poner en producción la aplicación.
Mientras estás en la fase de desarrollo no hace falta y además puede darte
problemas si usas la edición express de VS, ya que los diseñadores de la
versión express no funcionan con bases de datos remotas.


Saludos:

Jesús López
MVP VB
Solid Quality Learning
www.solidqualitylearning.com



"byrpa" wrote:

Fijate que es como tu lo dices, pero estuve haciendo algunas pruebas y en la
opcion que mencionas de la propiedad de la base "Copy to Output
Directory=Copy if newer" me crea una copia de la base hacia el directorio
"D:\proyectos\inventario\bin\debug\smom.mdf" o sea que me pone una base
nueva y el programa trabaja con esa base aunque este especificado en la
propiedades que la base esta en "d:\proyectos\inventario" no la usa, por lo
tanto si me conecto con vb2005 siempre me aparecen los mismos registros que
antes porque es una base vieja, la actualizada esta en el directorio
mencionado, copiando todo el directorio "D:\proyectos\inventario\bin\debug",
hacia "c:\inventario", trabaja perfecto el exe con su base en el mismo
directorio, ahora bien alguien sabe como trabajar esto en red, hay que hacer
"conectar unidad de red", o como seria en este caso?


"JunXCosio" escribió en el mensaje
news:
> muy bien el problema no lo tienes en el codigo lo tienes en la base de
> datos,
> seleciona el fichero de base de datos en el "Solution Explorer" ejemplo el
> "database1.mdf".
>
> Y en propiedades veras una que dice "Copy to Output Directory" y te pondra
> por defecto "Copy always". Pues esa opcion pon la a "Copy if newer" no me
> preguntes porque cojones funciona de una manera y de la otra no pero el
> caso
> es asi ...
>
> Un saludo
>
> "byrpa" escribió:
>
>> Como ya les he contado estoy siguiendo paso a paso, el turorial de MSDN
>> Video, del cual he aprendido mucho, pero intente hacer una mi pequeña
>> aplicacion y resulta que cuando le doy el update, me graba todo bien,
>> pero
>> temporalmente o sea en el dataset de la base (en el grid si aparecen), no
>> a
>> la base en si, ya que cuando reviso dicha tabla atravez del VS no
>> aparecen
>> los registros, los pasos que segui son exactamente los mismos del video,
>> estoy usando xp sp2, con visual basic 2005, la version final y sql
>> express
>> 2005 tambien la version final, la base de datos es un archivo que esta en
>> el
>> proyecto tal como se dijo en el tutorial y los textbox solo los arrastre
>> de
>> los dataset que habia creado previamente, hay algo que me falta?
>>
>> Por aca esta el codigo:
>> Public Class regionesnuevo
>> Private Sub regionesnuevo_Load(ByVal sender As System.Object, ByVal e
>> As
>> System.EventArgs) Handles MyBase.Load
>> Me.RegionesBindingSource.AddNew()
>> End Sub
>>
>> Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As
>> System.EventArgs) Handles Button1.Click
>> Me.Validate()
>> Me.RegionesBindingSource.EndEdit()
>> Me.RegionesTableAdapter.Update(Me.RegionesDS.regiones)
>> Me.Close()
>> End Sub
>>
>> Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As
>> System.EventArgs) Handles Button2.Click
>> Me.Close()
>> End Sub
>> End Class
>>
>> Gracias por sus respuestas
>>
>>
>>



Respuesta Responder a este mensaje
#5 byrpa
12/01/2006 - 01:42 | Informe spam
O sea que la forma en la que estoy programando, con los asistentes
(arrastrar y pegar los campos de las tablas), etc, no me funciona si el
programa lo quiero en red, tendria que hacerlo todo con codigo? y aun asi no
funciona el visual basic express multiusuario?



"Jesús López" escribió en el mensaje
news:
Para que tu aplicación funcione en red tienes que hacer lo siguiente:

(1) Instalar SQL Server 2005, edición Express o superior en un servidor de
la red.
(2) Habilitar el acceso remoto a SQL Server
(3) Copiar el archivo de base de datos mdf que tienes en tu proyecto en el
servidor de la red
(5) Anexar la base de datos mdf en el servidor.
(5) Conceder los permisos necesarios a los usuarios para que se conecten a
la base de datos y puedan realizar las tareas que necesitan hacer
(6) cambiar la cadena de conexión que aparece en el App.config para que
haga
referencia al servidor de la red y a la base de datos en cuestión.

Estos pasos deberías hacerlos antes de poner en producción la aplicación.
Mientras estás en la fase de desarrollo no hace falta y además puede darte
problemas si usas la edición express de VS, ya que los diseñadores de la
versión express no funcionan con bases de datos remotas.


Saludos:

Jesús López
MVP VB
Solid Quality Learning
www.solidqualitylearning.com



"byrpa" wrote:

Fijate que es como tu lo dices, pero estuve haciendo algunas pruebas y en
la
opcion que mencionas de la propiedad de la base "Copy to Output
Directory=Copy if newer" me crea una copia de la base hacia el directorio
"D:\proyectos\inventario\bin\debug\smom.mdf" o sea que me pone una base
nueva y el programa trabaja con esa base aunque este especificado en la
propiedades que la base esta en "d:\proyectos\inventario" no la usa, por
lo
tanto si me conecto con vb2005 siempre me aparecen los mismos registros
que
antes porque es una base vieja, la actualizada esta en el directorio
mencionado, copiando todo el directorio
"D:\proyectos\inventario\bin\debug",
hacia "c:\inventario", trabaja perfecto el exe con su base en el mismo
directorio, ahora bien alguien sabe como trabajar esto en red, hay que
hacer
"conectar unidad de red", o como seria en este caso?


"JunXCosio" escribió en el mensaje
news:
> muy bien el problema no lo tienes en el codigo lo tienes en la base de
> datos,
> seleciona el fichero de base de datos en el "Solution Explorer" ejemplo
> el
> "database1.mdf".
>
> Y en propiedades veras una que dice "Copy to Output Directory" y te
> pondra
> por defecto "Copy always". Pues esa opcion pon la a "Copy if newer" no
> me
> preguntes porque cojones funciona de una manera y de la otra no pero el
> caso
> es asi ...
>
> Un saludo
>
> "byrpa" escribió:
>
>> Como ya les he contado estoy siguiendo paso a paso, el turorial de
>> MSDN
>> Video, del cual he aprendido mucho, pero intente hacer una mi pequeña
>> aplicacion y resulta que cuando le doy el update, me graba todo bien,
>> pero
>> temporalmente o sea en el dataset de la base (en el grid si aparecen),
>> no
>> a
>> la base en si, ya que cuando reviso dicha tabla atravez del VS no
>> aparecen
>> los registros, los pasos que segui son exactamente los mismos del
>> video,
>> estoy usando xp sp2, con visual basic 2005, la version final y sql
>> express
>> 2005 tambien la version final, la base de datos es un archivo que esta
>> en
>> el
>> proyecto tal como se dijo en el tutorial y los textbox solo los
>> arrastre
>> de
>> los dataset que habia creado previamente, hay algo que me falta?
>>
>> Por aca esta el codigo:
>> Public Class regionesnuevo
>> Private Sub regionesnuevo_Load(ByVal sender As System.Object,
>> ByVal e
>> As
>> System.EventArgs) Handles MyBase.Load
>> Me.RegionesBindingSource.AddNew()
>> End Sub
>>
>> Private Sub Button1_Click(ByVal sender As System.Object, ByVal e
>> As
>> System.EventArgs) Handles Button1.Click
>> Me.Validate()
>> Me.RegionesBindingSource.EndEdit()
>> Me.RegionesTableAdapter.Update(Me.RegionesDS.regiones)
>> Me.Close()
>> End Sub
>>
>> Private Sub Button2_Click(ByVal sender As System.Object, ByVal e
>> As
>> System.EventArgs) Handles Button2.Click
>> Me.Close()
>> End Sub
>> End Class
>>
>> Gracias por sus respuestas
>>
>>
>>



Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente Respuesta Tengo una respuesta
Search Busqueda sugerida