• Martes 19 de Noviembre de 2024, 17:33

Autor Tema:  Editar Un Registro  (Leído 5085 veces)

Cajami

  • Miembro MUY activo
  • ***
  • Mensajes: 298
    • Ver Perfil
Editar Un Registro
« en: Lunes 3 de Julio de 2006, 03:40 »
0
Hola que tal amigos del Foro, esta vez tengo el siguiente problema, he buscado en el inter pero hasta ahora encuentro algo; mi problem's es el siguiente: tengo una base de datos creada alli mismo en Visual Basic 2005, todo está ia casi listo tengo en un formulario botones para Nuevo, Guardar, Deshacer, Buscar por medio de filtros pero quiero poner un boton de Editar, para moverse por lso registros: <<  <  >  >>, para irse al primer registro ps hago asi:

Private Sub BtnPrimero_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnPrimero.Click
        Me.HuespedBindingSource.MoveFirst()
    End Sub

Pero la instruccion para editar ps no la conozco, disculpa, tengo otra pregunta, para preguntar por la posicion de un registro ps en el 6.0 lo hacia con la instruccion EOF y desactivaba dos controles, el primero y el anterior, pero en el 2005 tampoco encuentro esa instruccion, que tengo que escribir. gracias  :hola:

Tumbes - Peru
Lima - Perú

-------------------------------------------------------------------------------------------------------
"Persigue tus metas, tus objetivos, tus sueños, nunca t rindas si t caes 1000 veces levantat 1000 veces y sigue adelante..."

jodijo5

  • Miembro HIPER activo
  • ****
  • Mensajes: 518
  • Nacionalidad: pe
    • Ver Perfil
    • http://www.bluetecnologia.com
Re: Editar Un Registro
« Respuesta #1 en: Miércoles 19 de Julio de 2006, 22:44 »
0
para editar un registro necesitas un sqlcommandbuilder

Código: Text
  1.  
  2. dim ds as new dataset
  3. dim conn as new sqlconnection(&#34;aqui mi conecion&#34;)
  4. dim da as new sqldataadapter(&#34;select * from customers&#34;,conn)
  5. dim cb as new sqlcommandbuilder(da)
  6. da.fill(ds,&#34;customers&#34;)
  7. dim dr as datarow
  8.  
  9. queremos modificar el registro 20 de los resultadosa de la consulta
  10. dr=ds.tables(&#34;customers&#34;).rows(20)
  11.  
  12. 'de este registro queremos modificar el campo 5, no se cual será
  13.  
  14. dr(5)=7
  15.  
  16. 'se modifica directamente y no se tiene que hacer nada mas, si quieres hacer
  17. 'alguna modificación, modificalo directamente en el datarow y listo
  18. 'ahora para acatualizarlo en la base de datos se pone:
  19.  
  20. da.update(ds,&#34;customers&#34;)
  21.  
  22.  
  23.  
'OJO: si no declaras un objeto de la clase sqlcommandbuilder despues de haber hecho la consulta en el sqldataadapter, no podras actualizar nada en la base de datos, al constructor de el objeto de la clase sqlcommandbuilder se le asigna simplemente el sqldataadapter con la sentencia sql hecha, lo que hace ese objeto es crear en el sqldataadapter las respectivas sentencias de "update", "insert into", y "delete", para que despues puedas hacer esas operaciones con el darows, dataset, datatable, etc, segun lo que necesitas

si no tienes eso, tu consulta sera de solo lectura, y si lo intentas sin este objeto te va a salir error.
=============================
Daniel Pomalaza Mendoza
visita el Dinosaurio Azul :-D
http://bluetecnologia.com

Tagasa

  • Miembro activo
  • **
  • Mensajes: 66
    • Ver Perfil
Re: Editar Un Registro
« Respuesta #2 en: Jueves 20 de Julio de 2006, 16:58 »
0
Hola Jodijo5!

No se si me prodras contestar, he probado lo que pones porque necesito añadir registros en una tabla, queria saber cuando dices que el data adapter necesita un 'Update', 'Insert into', etc..., eso quiere decir que tengo que tenerlo hecho como cuando arrastras un data adapter que te crea automaticamente el commandinsert, commanddelete... Tendria que crearlos yo si no arrastro ningun data adapter y lo creo por codigo directamente??

Nada mas es por que yo queria evitarme hacer la sql del insert into que me queda muy larga...

Espero que me haya explicado bien...

Saludossssssssssssss :hola:

Tania

jodijo5

  • Miembro HIPER activo
  • ****
  • Mensajes: 518
  • Nacionalidad: pe
    • Ver Perfil
    • http://www.bluetecnologia.com
Re: Editar Un Registro
« Respuesta #3 en: Domingo 23 de Julio de 2006, 17:57 »
0
la funcion del sqldataadapter  es tomar los resultados de lña base de datos, la funcion del sqlcommandbuilder, es hacer que ese dataadapter tambien tenga la capacidad de hacer operaciones de actualizacion, ahora si pones asi:

esta parte por ahora no te interesa:
Código: Text
  1.  
  2. dim ds as new dataset
  3. dim conn as new sqlconnection(&#34;aqui mi conecion&#34;)
  4. dim da as new sqldataadapter(&#34;select * from customers&#34;,conn)
  5. dim cb as new sqlcommandbuilder(da)
  6. da.fill(ds,&#34;customers&#34;)
  7. dim dr as datarow
  8.  
  9. queremos modificar el registro 20 de los resultadosa de la consulta
  10. dr=ds.tables(&#34;customers&#34;).rows(20)
  11.  
  12.  

esta es la parte que te interesa:
Código: Text
  1.  
  2. dr(0)=1
  3. dr(1)=&#34;aqui&#34;
  4. dr(2)=&#34;por aca&#34;
  5. ...
  6. etc
  7.  
  8.  

al hacere esto, ya estas actualizando los resultados, solo te falta pasarlo a la base de datos:

Código: Text
  1.  
  2. da.update()
  3.  
  4.  

de tal forma que si quieres hacer la actualizacion o insercion, lo haces así, ahora que si no te gusta esto, puedes hacer algo así:
Código: Text
  1.  
  2. dim ds as new dataset
  3. dim cm as new sqlcommand(&#34;insert into factura(bla,bla,bla,bla,...) values(bla,bla,bla,bla,...)&#34;)
  4. 'ahora esto lo insertas en el dataadapter
  5. dim da as new sqldataadapter(cm)
  6. dim sqlcommandbuilder(da)
  7. da.fill(ds,&#34;miresultado&#34;)
  8.  
  9.  

y bueno a este ultimo codigo quiere decir que bueno en ves de usar los metodos de actualizar del mismo .net, los actualizas con la misma sentencia SQL   insert into" o "update"

por si las moscas te paso una funcion para que te ahorre todo ese trabajo, y eso ya recibe todo tipo de sentencias sql.
El mensaje contiene 1 archivo adjunto. Debes ingresar o registrarte para poder verlo y descargarlo.
=============================
Daniel Pomalaza Mendoza
visita el Dinosaurio Azul :-D
http://bluetecnologia.com

Tagasa

  • Miembro activo
  • **
  • Mensajes: 66
    • Ver Perfil
Re: Editar Un Registro
« Respuesta #4 en: Lunes 24 de Julio de 2006, 09:07 »
0
Gracias Jodijo5! :rolleyes:

Probare a ver lo que me dices si me funciona o no, si lo primero no lo consigo lo hare de la otra manera creando yo el insert into o el update... aunque quede un poco largo, jeje

Saludosssssssssssssssss

 :hola:

Tagasa

  • Miembro activo
  • **
  • Mensajes: 66
    • Ver Perfil
Re: Editar Un Registro
« Respuesta #5 en: Lunes 24 de Julio de 2006, 11:56 »
0
Hola!
HE probado lo primero que me dices sin el insert el rpoblema es que no da error pero tampoco me añade ninguna linea. Dejo aqui el codigo a ver si alguien me puede decir donde puede estar el fallo:

Código: Text
  1.  
  2.  
  3.         Try
  4.             'Para coger los datos de de100m5
  5.             cnGOBEX400 = New SqlConnection(Cadena)
  6.             ComandoSQL = New SqlCommand(&#34;select * from De100m5&#34;, cnGOBEX400)
  7.             Dim cb As New OleDbCommandBuilder(DAaccess)
  8.  
  9.             cnGOBEX400.Open()
  10.             Lector = ComandoSQL.ExecuteReader()
  11.  
  12.             'Para meter los datos en access
  13.             DAaccess = New OleDbDataAdapter(&#34;Select * from de100m5&#34;, cadenaA)
  14.             DAaccess.Fill(DSaccess, &#34;de100m5&#34;)
  15.  
  16.             dr = DSaccess.Tables(&#34;de100m5&#34;).NewRow
  17.  
  18.             dr(0) = Me.txtOrden.Text
  19.             DAaccess.Update(DSaccess, &#34;de100m5&#34;)
  20.  
  21.             MessageBox.Show(&#34;Grabados los datos&#34;)
  22.         Catch ex As Exception
  23.             MessageBox.Show(ex.Message)
  24.         End Try
  25.  
  26.  

Saludossssssssssssssssssssssssssss :hola:
Tania

Tagasa

  • Miembro activo
  • **
  • Mensajes: 66
    • Ver Perfil
Re: Editar Un Registro
« Respuesta #6 en: Lunes 24 de Julio de 2006, 15:10 »
0
Hola otra vez!

Solo comentra que he añadido esta linea detras de la de newrow:

Código: Text
  1.  
  2. DSaccess.Tables(&#34;de100m5&#34;).Rows.Add(dr)
  3.  
  4.  

Y ahora me da el siguiente Error:   :(

"Update requiere que InsertCommand sea valido cuando se pasa la colección DataRow con nuevas filas"

No se servira para que me digais donde  estoy haciendolo mal,  :blink:  pero ahi lo dejo...

Saludosssssssssssssss

Tania

jodijo5

  • Miembro HIPER activo
  • ****
  • Mensajes: 518
  • Nacionalidad: pe
    • Ver Perfil
    • http://www.bluetecnologia.com
Re: Editar Un Registro
« Respuesta #7 en: Lunes 24 de Julio de 2006, 18:42 »
0
Try
           'Para coger los datos de de100m5
           cnGOBEX400 = New SqlConnection(Cadena)
           ComandoSQL = New SqlCommand("select * from De100m5", cnGOBEX400)
           Dim cb As New OleDbCommandBuilder(DAaccess)

           cnGOBEX400.Open()
           Lector = ComandoSQL.ExecuteReader()

           'Para meter los datos en access
           DAaccess = New OleDbDataAdapter("Select * from de100m5", cadenaA)
           DAaccess.Fill(DSaccess, "de100m5")

           dr = DSaccess.Tables("de100m5").NewRow

           dr(0) = Me.txtOrden.Text



DSaccess.Tables("de100m5").rows.add(dr)


           DAaccess.Update(DSaccess, "de100m5")

           MessageBox.Show("Grabados los datos")
       Catch ex As Exception
           MessageBox.Show(ex.Message)
       End Try
=============================
Daniel Pomalaza Mendoza
visita el Dinosaurio Azul :-D
http://bluetecnologia.com

Tagasa

  • Miembro activo
  • **
  • Mensajes: 66
    • Ver Perfil
Re: Editar Un Registro
« Respuesta #8 en: Miércoles 26 de Julio de 2006, 11:56 »
0
Hola!

Ya habia probado eso y me sigue dando el mismo fallo, no se porque puede ser... si alguien lo sabe... :unsure:

saludosssssssss :hola:

Tania

Tagasa

  • Miembro activo
  • **
  • Mensajes: 66
    • Ver Perfil
Re: Editar Un Registro
« Respuesta #9 en: Miércoles 26 de Julio de 2006, 12:33 »
0
Se me olvido decir que el fallo me da en la linea:

Código: Text
  1.  
  2. DAaccess.Update(DSaccess, &#34;de100m5&#34;)
  3.  
  4.  

Tania

jodijo5

  • Miembro HIPER activo
  • ****
  • Mensajes: 518
  • Nacionalidad: pe
    • Ver Perfil
    • http://www.bluetecnologia.com
Re: Editar Un Registro
« Respuesta #10 en: Miércoles 26 de Julio de 2006, 18:47 »
0
claro que si pones el error que te sale, te podemos ayudar mejor
=============================
Daniel Pomalaza Mendoza
visita el Dinosaurio Azul :-D
http://bluetecnologia.com

Tagasa

  • Miembro activo
  • **
  • Mensajes: 66
    • Ver Perfil
Re: Editar Un Registro
« Respuesta #11 en: Jueves 27 de Julio de 2006, 08:21 »
0
No lo puse porque ya lo habia puesto arriba  :P , es este:

"Update requiere que InsertCommand sea valido cuando se pasa la colección DataRow con nuevas filas"

Saludosssssssssss

Tania

Tagasa

  • Miembro activo
  • **
  • Mensajes: 66
    • Ver Perfil
Re: Editar Un Registro
« Respuesta #12 en: Jueves 27 de Julio de 2006, 08:33 »
0
Hola!

He hecho un cambio:
Código: Text
  1.  
  2.            Lector = ComandoSQL.ExecuteReader()
  3.  
  4.            [B] 'Antes estaba aqui la definicion del commandbuilder[/B]
  5.             'Para meter los datos en access
  6.             DAaccess = New OleDbDataAdapter(&#34;Select * from de100m5&#34;, cadenaA)
  7.  
  8.             [B]Dim cb As New OleDbCommandBuilder(DAaccess)[/B]
  9.  
Ahora el error que me sale es:
Código: Text
  1.  
  2. Error en la sintaxis en la instruccion INSERT INTO
  3.  
  4.  

Supono que tengo que poner en la sql del dataadapter una Insert Into que era de lo que me quiera librar, no se ...  :unsure:

Tania

The Black Boy

  • Miembro de PLATA
  • *****
  • Mensajes: 1043
  • Nacionalidad: co
    • Ver Perfil
    • http://www.mslatam.com/latam/technet/mva2/Microsite.aspx?alias=JairoDiaz
Re: Editar Un Registro
« Respuesta #13 en: Jueves 27 de Julio de 2006, 17:17 »
0
por que te quieres librar de un Insert Into?

tu proyecto es un proyecto WEB, por que si es asi, tienes razon en no querer ingresar una sentencia SQL en el CODE; ahora creo que es imposible librarse del Insert into ya que si  no lo colocas en el code lo tendras que colocar en el SP que realices  :P

de todas formas aun no comprendo en esencia que es lo que no has podido realizar.... :lol:

Salu2 :hola:
El inteligente no es aquel que lo sabe todo
sino aquel que   sabe utilizar lo poco que sabe.


Espacio Personal

si necesitas algo de programacion click aqui, si no esta aqui no existe

Programacion]

Tagasa

  • Miembro activo
  • **
  • Mensajes: 66
    • Ver Perfil
Re: Editar Un Registro
« Respuesta #14 en: Jueves 27 de Julio de 2006, 17:37 »
0
Lo que quiero conseguir en guardar una serie de datos en una tabla.

El problema de la insert into es que como son 30 campos pues me queda muy largo, ademas de los 30 parameter que tengo que pasarle por cada uno. Era simplemente para minimizar codigo.

Pero esta visto que no me libro de el,  :P  asi que nada a escribir y a escribir.

Muchas gracias por intentar ayudarme, jejeje

Pero si a alguien se le ocurre porque no me funciona el codigo que me avise...  :rolleyes:

Graciasssssssss y Saludosssssssssssss

Tania

The Black Boy

  • Miembro de PLATA
  • *****
  • Mensajes: 1043
  • Nacionalidad: co
    • Ver Perfil
    • http://www.mslatam.com/latam/technet/mva2/Microsite.aspx?alias=JairoDiaz
Re: Editar Un Registro
« Respuesta #15 en: Jueves 27 de Julio de 2006, 18:01 »
0
ok, en vista que son tanto parametros los que hay que insertar, yo consideraria que es mejor que crees un SP, ya que así te ahorrarias mas lineas en el Code, pero si la DB es Access, ni modos  creo que access no se pueden crear SP...  


Salu2 :hola:
El inteligente no es aquel que lo sabe todo
sino aquel que   sabe utilizar lo poco que sabe.


Espacio Personal

si necesitas algo de programacion click aqui, si no esta aqui no existe

Programacion]

Tagasa

  • Miembro activo
  • **
  • Mensajes: 66
    • Ver Perfil
Re: Editar Un Registro
« Respuesta #16 en: Viernes 28 de Julio de 2006, 08:46 »
0
SP son procedimientos almacenados?? :blink:  es que no lo tengo muy claro, jeje...

Bueno si en acces no se pueden usar lo dicho  me dedicare a escribir codigo y codigo, jeje :rolleyes:

Graciassssssssssss a todosssssssssssssssssssss

Saludossss

Tania