Foros del Web » Programación para mayores de 30 ;) » .NET »

Insert, update, delete....?

Estas en el tema de Insert, update, delete....? en el foro de .NET en Foros del Web. Muy wenas a todos/as, como siempre, el nuevo en esto, dando trabajo al personal , por lo que ante todo disculpen las molestias, que ya ...
  #1 (permalink)  
Antiguo 19/05/2004, 05:50
 
Fecha de Ingreso: abril-2004
Ubicación: Murcia
Mensajes: 65
Antigüedad: 20 años
Puntos: 0
Insert, update, delete....?

Muy wenas a todos/as, como siempre, el nuevo en esto, dando trabajo al personal , por lo que ante todo disculpen las molestias, que ya tengo yo ganas de ser el molestado.

Pues nada que a ver ssi alguien tiene algun codigo de insert, update.... para asp.net al que le pueda echar un vistazo, inclusive usarlo.

Recordar que estoy usando V.S. .NET

Muchas gracias por adelantado y un saludo para todos/as.
__________________
A caballo regalado...........quitale el envoltorio.
  #2 (permalink)  
Antiguo 19/05/2004, 05:57
Avatar de SunDarK  
Fecha de Ingreso: diciembre-2003
Ubicación: Jerez de la Frontera
Mensajes: 1.193
Antigüedad: 20 años, 5 meses
Puntos: 8
¿Que base de datos estas usando?
  #3 (permalink)  
Antiguo 19/05/2004, 06:05
Avatar de GeRuNdIo  
Fecha de Ingreso: marzo-2004
Ubicación: Sanlúcar de Barrameda, Cádiz
Mensajes: 232
Antigüedad: 20 años, 1 mes
Puntos: 2
Mensaje Claro hombre!! como no....

Espero que te sirva de algo el código que te pasteo....
Por si te sirve de algo, me funciona perfectamente. El lenguaje que estoy usando como comprobarás es VB.NET (VS .NET)
El orígen de datos que utilizo es SQL SERVER, si estas usando MDB (Acces) me lo dices y te digo las modificaciones.

Dim conexion as SqlConnection("server=(local);database=prueba;user =sa;")
Dim sql as string

sql = "SELECT * FROM CLIENTES WHERE COD_CLIENTE=" & WebForm2.cod_cliente
Dim consulta as new SqlCommand(sql, conexion)
conexion.Open()
Dim dr As SqlDataReader = consulta.ExecuteReader
While dr.Read
Me.lblnom.Text = dr("nombre_cliente") 'Campo obligatorio

If Not dr.IsDBNull(1) Then 'Comprobamos que no es NULL
Me.lblpass.Text = dr("password")
End If
If Not dr.IsDBNull(3) Then
Me.lblrs.Text = dr("razon_social")
End If
If Not dr.IsDBNull(4) Then
Me.lbldomi.Text = dr("domicilio_cliente")
End If
If Not dr.IsDBNull(5) Then
Me.lblpob.Text = dr("poblacion")
End If
If Not dr.IsDBNull(6) Then
Me.lbltlf.Text = dr("tlf")
End If
If Not dr.IsDBNull(7) Then
Me.lblmail.Text = dr("correo")
End If

End While
conexion.Close()

Ahora te pongo un ejemplo de INSERT:

Dim Sql_insert as string

Sql_Insert = "INSERT INTO LOG VALUES ('" & WebForm2.cod_cliente & "','" & _
cod_app & "','" & datetime & "','" & WebForm1.IP & "','" & cod_inci & "')"

Dim Insercion as New SqlCommand(Sql_Insert, conexion)

conexion.Open()
Insercion.ExecuteNonQuery()
conexion.Close()

Para UPDATE y DELETE es basicamente igual, tan solo cambia la consulta sql.

Espero te sirva de ayuda!!!
__________________
Una buena forma de sacar las castañas del fuego sin quemarse: LEE FOROSDELWEB..... :si:
------
F.P.R. MCAD .NET
  #4 (permalink)  
Antiguo 19/05/2004, 06:15
Avatar de juagarc4  
Fecha de Ingreso: octubre-2003
Ubicación: En casa
Mensajes: 127
Antigüedad: 20 años, 6 meses
Puntos: 0
Holap, toral,
como ya sabes, molestia ninguna, si puedo ayudar, lo hago encantado, igual que me ayudan a mi
Bueno, aquí te pongo una de cada
Suponemos que tengo una tabla PERSONAS que contiene: NIF, NOmbre, DIreccion, Telefono
Código:
INSERT
-------------------------------------------------------------------------------

INSERT INTO PERSONAS (NIF,Nombre,Direccion,Tel) VALUES ('" & txtNIF.Text & "','" & txtNombre.Text & "','" & txtdireccion & "','" & txtTelefono & "')"
Código:
UPDATE
--------------------------------------------------------------------------------

UPDATE PERSONAS SET NIF='" & txtNIF.Text & "',Nombre='" & txtNombre.text & "',Direccion='" & TxtDireccion.Text & "' Where NIF = '" & txtNIF.text & "'"
(esta consulta funciona bien si no dejas que se modifique el 
txtNIF.text, el motivo está en la 'NOTA' de abajo)
Si quieres que se puedan modificar TODOS los datos, sigue leyendo.
'NOTA: CUIDADO CON EL UPDATE, porque este que te pongo actualizará los datos para la persona con un NIF DETERMINADO(el que has puesto en txtNIF.text), pero si ese NIF todavia no existe en la BD no hará nada. Para que esto no pase, puedes guardar el NIF antiguo en una variable  NIFANT (ya que se supone que para modificar los datos primero habrás tenido que recuperarlos y mostrarlos en cajas de texto o en una grid, etc...)
Nada mas mostrar los datos guardas el NIF obtenido en la SELCT en la variable NIFANT, por si acaso.
y entonces tu UPDATE SERIA: 
Código:
UPDATE PERSONAS SET NIF='" & txtNIF.Text & "',Nombre='" & txtNombre.text & "',Direccion='" & TxtDireccion.Text & "' Where NIF = '" & NIFANT & "'"
Código:
DELETE
------------------------------------------------------------------------------------

DELETE FROM PERSONAS Where NIF='" & txtNif.text & "'
A partir de ahi las variaciones sobre las instrucciones son muchas, ya que los datos que les pasa a las instrucciones se pueden coger de otra forma que no sea directamente de lostextbox (p.ej: variables Session()).
Espero que te haya ayudado, algo.
Salu2
__________________
El que pregunta lo que no sabe, es ignorante durante 5 minutos, el que no lo pregunta lo es de por vida (Proverbio Chino)
La tonteria se pone siempre en primera fila, para ser vista. La inteligencia se pones siempre detrás para poder ver. (Alguien lo dijo, seguro)
  #5 (permalink)  
Antiguo 19/05/2004, 07:20
Avatar de SunDarK  
Fecha de Ingreso: diciembre-2003
Ubicación: Jerez de la Frontera
Mensajes: 1.193
Antigüedad: 20 años, 5 meses
Puntos: 8
Respecto a la respuesta de Gerundio,si el servidor tiene password lo pones asi
"server=(local);database=prueba;user=sa;pwd=elkese a")

Saludos
  #6 (permalink)  
Antiguo 19/05/2004, 08:08
Avatar de RootK
Moderador
 
Fecha de Ingreso: febrero-2002
Ubicación: México D.F
Mensajes: 8.004
Antigüedad: 22 años, 2 meses
Puntos: 50
Solo una recomendacion... cuando ocupen ésto:

Me.lblpob.Text = dr("poblacion")


Traten siempre de hacer una declaracion implícita para tener un poco mas de rapidez en la aplicacion.

Ejemplo-

Me.lblpob.Text = CStr (dr("poblacion"))

O en su defecto...hacer con el mismo datareader y poniendo el numero del campo correspondiente..(empieza desde el cero)

Suponiendo que tengo ésto:

Select campo1, poblacion from tabla

y quiero obtener poblacion..puedo hacer:

Cita:
Me.lblpob.Text = r.GetString (1)
Donde tambien está:
dr.GetString(1)
dr.GetInt16(1)
dr.GetInt32(1)
dr.GetBoolean(1)...etc.


Saludos
__________________
Nadie roba nada ya que en la vida todo se paga . . .

Exentrit - Soluciones SharePoint & Net
  #7 (permalink)  
Antiguo 20/05/2004, 01:10
 
Fecha de Ingreso: abril-2004
Ubicación: Murcia
Mensajes: 65
Antigüedad: 20 años
Puntos: 0
Sobre tu pregunta SunDark, estoy tirando sobre sql server.

Gracias a todos/as y saludos.
__________________
A caballo regalado...........quitale el envoltorio.
  #8 (permalink)  
Antiguo 20/05/2004, 02:48
 
Fecha de Ingreso: abril-2004
Ubicación: Murcia
Mensajes: 65
Antigüedad: 20 años
Puntos: 0
Hola de nuevo, vereis el codigo que me ha pasado GeRuNdIo, estoy seguro de que es bueno y las aportaciones de los demás ,
pero como estoy trabajando con VS y con dataset, me parece, si no me equivoco, que se hará de forma diferente,
solo deciros que si teneis alguna otra aportación para el caso del que os hablo os lo agredecría de corazón,
si no trataré de acoplarlo, y de probarlo con datareader, en algunos ejemplos que tengo para ello.

Por cierto ¿no se puede hacer un datareader en VS como un dataset, datadapter...?,
es decir picando sobre el en la barra de herramientas y arrastrandolo al web form, o algo parecido.

Gracias y saludos.
__________________
A caballo regalado...........quitale el envoltorio.
  #9 (permalink)  
Antiguo 20/05/2004, 03:20
Avatar de GeRuNdIo  
Fecha de Ingreso: marzo-2004
Ubicación: Sanlúcar de Barrameda, Cádiz
Mensajes: 232
Antigüedad: 20 años, 1 mes
Puntos: 2
Vaya.... la verdad es q estoy mal acostumbrado al DataReader....
Con ADO.NET la ventaja principal es el DataSet..... (Modelo desconectado de datos).
Voy a buscarte un ejemplillo con DataSet hombre, espero que te sirva.

Respecto a tu pregunta acerca de arrastrar un DataReader.... No se hace así exactamente ya que como "componente" no existe, al contrario que el DataSet que sí lo es y puedes arrastrarlo perfectamente e inegrarlo como dices. Si quieres usar DataReader, la forma (al menos para mí) más fácil es crear un DataGrid y mediante código usando DataReader llenarlo.

De todas formas como te digo, te pasteo código de DataSet.

***SELECT***

' crear conexión
Dim oConexion As New SqlConnection()
oConexion.ConnectionString = "Server=(local);Database=Northwind;uid=sa;pwd= ;"
' crear adaptador
Dim oDataAdapter As New SqlDataAdapter("SELECT * FROM Customers ORDER BY
ContactName", oConexion)
' crear conjunto de datos
Dim oDataSet As New DataSet()
oConexion.Open()
' utilizar el adaptador para llenar el dataset con una tabla
oDataAdapter.Fill(oDataSet, "Customers")
oConexion.Close()
' una vez desconectados, recorrer la tabla del dataset
Dim oTabla As DataTable
oTabla = oDataSet.Tables("Customers")
Dim oFila As DataRow
For Each oFila In oTabla.Rows
' mostrar los datos mediante un objeto fila
Me.lstCustomers.Items.Add(oFila.Item("CompanyName" ) & _
" - " & oFila.Item("ContactName") & " - " & _
oFila.Item("Country"))
Next


***INSERT***
Private Sub Form1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles
MyBase.Load
' crear conexión
oConexion = New SqlConnection()
oConexion.ConnectionString = "Server=(local);Database=MUSICA;uid=sa;pwd=;"
' crear adaptador
oDataAdapter = New SqlDataAdapter()
' crear comandos para inserción, consulta con sus parámetros
' y asignarlos al adaptador
Dim oCmdInsercion As New SqlCommand("INSERT INTO AUTORES " & _
"(IDAutor,Autor) VALUES(@IDAutor,@Autor)", oConexion)
oDataAdapter.InsertCommand = oCmdInsercion
oDataAdapter.InsertCommand.Parameters.Add(New SqlParameter("@IDAutor",
SqlDbType.Int))
oDataAdapter.InsertCommand.Parameters.Add(New SqlParameter("@Autor",
SqlDbType.NVarChar))
Dim oCmdConsulta As New SqlCommand("SELECT * FROM AUTORES", _
oConexion)
oDataAdapter.SelectCommand = oCmdConsulta
' crear conjunto de datos
oDataSet = New DataSet()
Me.CargarDatos()
End Sub
Private Sub CargarDatos()
' vaciar el dataset
oDataSet.Clear()
oConexion.Open() ' abrir conexión
' utilizar el adaptador para llenar el dataset con una tabla
oDataAdapter.Fill(oDataSet, "Autores")
oConexion.Close() ' cerrar conexión
' enlazar dataset con datagrid;
' en DataSource se asigna el dataset,
' en DataMember el nombre de la tabla del
' dataset que mostrará el datagrid
Me.grdDatos.DataSource = oDataSet
Me.grdDatos.DataMember = "Autores"
End Sub


Espero que te valga esto mejor que lo que te expuse anteriormente. Un saludo, y suerte!!
__________________
Una buena forma de sacar las castañas del fuego sin quemarse: LEE FOROSDELWEB..... :si:
------
F.P.R. MCAD .NET
  #10 (permalink)  
Antiguo 20/05/2004, 03:39
Avatar de SunDarK  
Fecha de Ingreso: diciembre-2003
Ubicación: Jerez de la Frontera
Mensajes: 1.193
Antigüedad: 20 años, 5 meses
Puntos: 8
Hombre Gerundio hay veces que es mejor usar el DataReader(modelo conectado),sobre todo para consultas chicas y demas,que te es mejor estar conectado a la BD que descargarte la tabla entera,esto es como todo,hay que aprovechar todo lo que se tiene de acuerdo a la situacion ^_^ ta luegor
  #11 (permalink)  
Antiguo 20/05/2004, 04:20
Avatar de GeRuNdIo  
Fecha de Ingreso: marzo-2004
Ubicación: Sanlúcar de Barrameda, Cádiz
Mensajes: 232
Antigüedad: 20 años, 1 mes
Puntos: 2
Cómo bien dice mi amigo SunDarK, a veces es mejor usar DataReader (modelo conectado de acceso a datos).
Yo recomiendo usar este método para Aplicaciones Web (para no sobrecargar la caché del navegador...). Sobre todo si lo que estas haciendo son consultas no muy complicadas y en momentos puntuales, no un ataque constante a la BD.

Vengaaa, saludosss!!!
__________________
Una buena forma de sacar las castañas del fuego sin quemarse: LEE FOROSDELWEB..... :si:
------
F.P.R. MCAD .NET
  #12 (permalink)  
Antiguo 20/05/2004, 04:30
 
Fecha de Ingreso: abril-2004
Ubicación: Murcia
Mensajes: 65
Antigüedad: 20 años
Puntos: 0
Muchisimas gracias.
__________________
A caballo regalado...........quitale el envoltorio.
  #13 (permalink)  
Antiguo 24/05/2004, 04:51
 
Fecha de Ingreso: abril-2004
Ubicación: Murcia
Mensajes: 65
Antigüedad: 20 años
Puntos: 0
Hola de nuevo, y perdonar mi ignorancia, pero quizas debí hacer la pregunta mejor, ahora que he podido ver el codigo que me habeis pasado, me he dado cuenta que la verdad no se como acoplar el codigo a mi aplicación web , os cuento mi intención en ella y si veis oportuno me dais las indicaciones, o una solución acorde a mi problema, ok?

Mi intención es en un(varios) formulario ya echo, mediante un botón realizar una inserción, modificar mediante otro botón etc..., para lo que pienso que debería mediante el evento click en el botón llamar a una función que lo realize, o algo por el estilo; como os digo, por mi ignorancia en el tema por el momento, ya que soy nuevo en esto, no se como abordar el problema, lo poco que consigo hasta ahora es mostrar datos en formularios, y mediante botones sig..., ant..., ... moverme entre los registros que muestro, y ahora quiero conseguir lo de insertar ...

Recordaros que trabajo con VS, y dataset, pero me vale cualquier cosa..., pues tambien e echo pruebas con datareader picando codigo en el notepad.

Gracias por adelantado y saludos.
__________________
A caballo regalado...........quitale el envoltorio.
  #14 (permalink)  
Antiguo 21/10/2007, 06:02
 
Fecha de Ingreso: octubre-2007
Mensajes: 8
Antigüedad: 16 años, 6 meses
Puntos: 0
Pregunta DUDAS Insert, update, delete....?

Hola, soy nuevo en esto de .net y bueno estoy en la fase de "Crear, Eliminar, Modificar", los primeros pasos los tengo hechos y de momento me funcionan que es el tema de la conexion a la base de datos, es mas puedo visualizar los registros de la tabla que he pedido. Pero mi problema viene con el INSERT UPADTE Y ADD, hay mucho codigo por ahi y cada uno con su estilo realmente no comprendo porque unos usan con el DataAdapter el CommandBuilder y tu en tu ejemplo no lo haces? cual es la ventaja de usarlo o no?. Y en estas sentencias:

oDataAdapter.InsertCommand.Parameters.Add(New SqlParameter("@IDAutor",
SqlDbType.Int))
oDataAdapter.InsertCommand.Parameters.Add(New SqlParameter("@Autor",
SqlDbType.NVarChar))

Exactamente que hacen?, y que pasa si las omites?

Si usas directamente los comandos SQL INSERT UPDATE Y DELETE como tratas un campo autonumerico?

Un saludo. Y disculpa las molestias

Última edición por ImNoob007; 21/10/2007 a las 06:09 Razón: Falto una pregunta mas.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 15:40.