Sv Community El Salvador

Soporte y Tecnología => Programación => .NET => Mensaje iniciado por: mil123 en octubre 17, 2014, 01:13:39 pm

Título: [AYUDA] codigo para actualizar datos
Publicado por: mil123 en octubre 17, 2014, 01:13:39 pm
Amigos ayuda, no se que estoy haciendo mal pero no me actualiza los datos:
 
Código: [Seleccionar]
string cadena = @" Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\GestionTaller.accdb";
                OleDbConnection conn = new OleDbConnection(cadena);

                conn.Open();

                string str = "UPDATE Clientes SET NomCliente= @NomCliente, Direccion= @Direccion, Telefono=@Telefono, Telefono2= @Telefono2, Dui= @Dui, Nit= @Nit, Registro=@Registro ,Giro=@Giro WHERE IdCliente= @IdCliente";
                OleDbCommand cmd = new OleDbCommand(str, conn);
               
                cmd.Parameters.Add("@IdCliente", OleDbType.Integer).Value = txtCodigo.Text;
                cmd.Parameters.Add("@NomCliente", OleDbType.VarChar).Value = txtNombre.Text;
                cmd.Parameters.Add("@Direccion", OleDbType.VarChar).Value = txtDireccion.Text;
                cmd.Parameters.Add("@Telefono", OleDbType.VarChar).Value = txtTelefono.Text;
                cmd.Parameters.Add("@Telefono2", OleDbType.VarChar).Value = txtCelular.Text;
                cmd.Parameters.Add("@Dui", OleDbType.VarChar).Value = txtDui.Text;
                cmd.Parameters.Add("@Nit", OleDbType.VarChar).Value = txtNit.Text;
                cmd.Parameters.Add("@Registro", OleDbType.VarChar).Value = txtRegistro.Text;
                cmd.Parameters.Add("@Giro", OleDbType.VarChar).Value = txtGiro.Text;
               

                MessageBox.Show("Datos Actualizados "+ cmd.ExecuteNonQuery());


Título: Re:[AYUDA] codigo para actualizar datos
Publicado por: Neon08 en octubre 17, 2014, 01:20:37 pm
Amigos ayuda, no se que estoy haciendo mal pero no me actualiza los datos:
 
Código: [Seleccionar]
string cadena = @" Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\GestionTaller.accdb";
                OleDbConnection conn = new OleDbConnection(cadena);

                conn.Open();

                string str = "UPDATE Clientes SET NomCliente= @NomCliente, Direccion= @Direccion, Telefono=@Telefono, Telefono2= @Telefono2, Dui= @Dui, Nit= @Nit, Registro=@Registro ,Giro=@Giro WHERE IdCliente= @IdCliente";
                OleDbCommand cmd = new OleDbCommand(str, conn);
               
                cmd.Parameters.Add("@IdCliente", OleDbType.Integer).Value = txtCodigo.Text;
                cmd.Parameters.Add("@NomCliente", OleDbType.VarChar).Value = txtNombre.Text;
                cmd.Parameters.Add("@Direccion", OleDbType.VarChar).Value = txtDireccion.Text;
                cmd.Parameters.Add("@Telefono", OleDbType.VarChar).Value = txtTelefono.Text;
                cmd.Parameters.Add("@Telefono2", OleDbType.VarChar).Value = txtCelular.Text;
                cmd.Parameters.Add("@Dui", OleDbType.VarChar).Value = txtDui.Text;
                cmd.Parameters.Add("@Nit", OleDbType.VarChar).Value = txtNit.Text;
                cmd.Parameters.Add("@Registro", OleDbType.VarChar).Value = txtRegistro.Text;
                cmd.Parameters.Add("@Giro", OleDbType.VarChar).Value = txtGiro.Text;
               

                MessageBox.Show("Datos Actualizados "+ cmd.ExecuteNonQuery());


Que error te devuelve?? lo has puesto en un try y catch?
usualmente con los parametros debes de ponerlos en el orden de aparicion que los pones en la consulta (supongo que lo estas haciendo en .net) asi que el primero que deberia de aparecer cuando los agregas es @nombrecliente y el ultimo @idcliente (poniendo los demas en su orden correspondiente tambien)

Espero serte de ayuda, sino comentanos y te echamos la mano :D
Título: Re:[AYUDA] codigo para actualizar datos
Publicado por: mil123 en octubre 17, 2014, 01:24:16 pm
ese es el detalle el try no devuelve nada, y con respecto el orden como es eso?? por que la idea es guardar todos los datos donde idCliente = @IdCliente, el campo
IdCliente en la base es autonumerico y unicamente lo uso para que sepa donde debe actulizarme los datos
Título: Re:[AYUDA] codigo para actualizar datos
Publicado por: XtremeH en octubre 17, 2014, 01:24:42 pm
También podrías validar si el mismo tipo de datos que estás agregando a los parámetros coincida con el tipo de datos de la tabla
Título: Re:[AYUDA] codigo para actualizar datos
Publicado por: mil123 en octubre 17, 2014, 01:27:01 pm
ya lo revise y todo esta igual, en la base solo el campo IdCliente es autoumerico y todos los demas los he dejado tipó texto, y cuando le doy a actualizar pareciera que todo se hizo bien pero al revisar los datos no han cambiado, y el ExcuteNonQuery me devuelve un valor de 0

Título: Re:[AYUDA] codigo para actualizar datos
Publicado por: Neon08 en octubre 17, 2014, 01:29:50 pm
ese es el detalle el try no devuelve nada, y con respecto el orden como es eso?? por que la idea es guardar todos los datos donde idCliente = @IdCliente, el campo
IdCliente en la base es autonumerico y unicamente lo uso para que sepa donde debe actulizarme los datos
Con el orden ya me ha pasado en BD que no son sql server en tu caso veo q es Access... vaya digamos que estas haciendo un update normal

Código: [Seleccionar]
update tabla1 set nombre=@nombre, apellido=@apellido, edad=@edad where idcliente=@idcliente
ahora bien mira en eese update cual es el primero parametro que aparece en la consulta, en este caso es @nombre, entonces cuando hagas el add de los parametros en .net debes de seguir ese orden de add (nombre,apellido,edad y idcliente)
probalo y me contas, ya me ha pasado con sybase sino me equivoco.
Título: Re:[AYUDA] codigo para actualizar datos
Publicado por: XtremeH en octubre 17, 2014, 01:34:40 pm
Mira, lo que veo es que cuando insertas los textos dentro de la tabla, no le agregas las comillas simples/dobles. Recorda que eso puede darte clavo, pues lo unico que va sin comillas son números. Podes revisar eso también
Título: Re:[AYUDA] codigo para actualizar datos
Publicado por: mil123 en octubre 17, 2014, 01:42:39 pm
haciendo pruebas ya descubri cual es el error no me esta tomando el cuenta el Where, cuando se lo quite me actulizo TODOS los datos de la tabla clientes.... ahora como puedo hacer para que el parametro @IdCliente tome el valor del textbox
Título: Re:[AYUDA] codigo para actualizar datos
Publicado por: Neon08 en octubre 17, 2014, 01:44:57 pm
haciendo pruebas ya descubri cual es el error no me esta tomando el cuenta el Where, cuando se lo quite me actulizo TODOS los datos de la tabla clientes.... ahora como puedo hacer para que el parametro @IdCliente tome el valor del textbox
y verificaste si lo actualizado corresponde a loq escribiste en los textbox de los otros datos?
Título: Re:[AYUDA] codigo para actualizar datos
Publicado por: mil123 en octubre 17, 2014, 02:04:35 pm
gracias ya lo solucione al parecer solo era de poner en update toda la estructura de la TABLA



EDITO: Para que NO se pierda la idea del porque abri este tema  :yao_ming:  :trollface:
Título: Re:[AYUDA] codigo para actualizar datos
Publicado por: tekun en octubre 17, 2014, 02:45:08 pm
gracias ya lo solucione al parecer solo era de poner en update toda la estructura de la base

toda la estructura de la base? que significa eso....

Título: Re:[AYUDA] codigo para actualizar datos
Publicado por: mil123 en octubre 17, 2014, 02:57:44 pm
toda la estructura de la base? que significa eso....



Código: [Seleccionar]
string str = "UPDATE Clientes SET IdCliente=@IdCliente, NomCliente= @NomCliente, Direccion= @Direccion, Telefono=@Telefono, Telefono2= @Telefono2, Dui= @Dui, Nit= @Nit, Registro=@Registro ,Giro=@Giro WHERE IdCliente=@IdCliente  ";
esa fue la unica manera en que me actualizo sin problemas, yo se que en sql no es necesario mandar a actuliazar el dato que te sirve como indice pero en access al precer si 
Título: Re:[AYUDA] codigo para actualizar datos
Publicado por: Neon08 en octubre 17, 2014, 03:12:15 pm
Código: [Seleccionar]
string str = "UPDATE Clientes SET IdCliente=@IdCliente, NomCliente= @NomCliente, Direccion= @Direccion, Telefono=@Telefono, Telefono2= @Telefono2, Dui= @Dui, Nit= @Nit, Registro=@Registro ,Giro=@Giro WHERE IdCliente=@IdCliente  ";
esa fue la unica manera en que me actualizo sin problemas, yo se que en sql no es necesario mandar a actuliazar el dato que te sirve como indice pero en access al precer si
AHHHHHH!!! actualizar el registro completo... no toda la estructura xD
Yo apostaría que es porq idcliente aparece en el orden en que haces el add de los parametros en .net pero si te funciona así no hay problema :)
Título: Re:[AYUDA] codigo para actualizar datos
Publicado por: tekun en octubre 17, 2014, 03:33:31 pm
AHHHHHH!!! actualizar el registro completo... no toda la estructura xD

vea que destanteo con el primer comentario.... toda la estructura!... yo hasta crei que hacia el "create database"  XD

Título: Re:[AYUDA] codigo para actualizar datos
Publicado por: Neon08 en octubre 17, 2014, 03:36:24 pm

vea que destanteo con el primer comentario.... toda la estructura!... yo hasta crei que hacia el "create database"  XD
Seeee la verdad siii... xD pense q la base había vuelto hacer o alguna opción rara de la configuración que podría tener acess xD
Título: Re:[AYUDA] codigo para actualizar datos
Publicado por: mil123 en octubre 17, 2014, 04:04:32 pm
la cosa es que encontre la solucion XD XD XD
Título: Re:[AYUDA] codigo para actualizar datos
Publicado por: Neon08 en octubre 17, 2014, 04:07:46 pm
la cosa es que encontre la solucion XD XD XD
Es lo bueno :) cualquier cosa q te podamos ayudar ahi estamos :D