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

[SOLUCIONADO] Hacer un insert con vb.net

Estas en el tema de Hacer un insert con vb.net en el foro de .NET en Foros del Web. Hola; Necesito ayuda. Quiero hacer un insert desde mi aplicación web a una base de datos. La conexión a la base de datos esta echa ...
  #1 (permalink)  
Antiguo 10/12/2012, 08:02
 
Fecha de Ingreso: abril-2012
Mensajes: 449
Antigüedad: 12 años, 1 mes
Puntos: 7
Exclamación Hacer un insert con vb.net

Hola;

Necesito ayuda. Quiero hacer un insert desde mi aplicación web a una base de datos. La conexión a la base de datos esta echa pero no se como hacer el insert. He encontrado algo y e ido poniéndolo en mi código pero no se si estará bien. Escribo la función y me comentáis. Es la primera vez que hago un insert y por mucho que mire en Internet no me aclaro mucho.
Código vb.net:
Ver original
  1. Protected Sub introducirDatos(ByVal idempleado As Integer)
  2.         Dim existeEmpleado As Integer
  3.  
  4.         Dim conn As New SqlConnection(WebConfigurationManager.ConnectionStrings("conexion").ConnectionString)
  5.         Dim comm2 As SqlCommand = New SqlCommand("SELECT COUNT(*) " & _
  6.                                                     "FROM dbo.temp_datosGuardados " & _
  7.                                                     "WHERE id_empleado = @idempleado", conn)
  8.         Dim reader2 As SqlDataReader
  9.  
  10.         Dim comm3 As SqlCommand = New SqlCommand("INSERT INTO dbo.temp_datosGuardados(id_hoja,id_empleado,fecha,clienteProveedor, " & _
  11.                                                  "destino,descriptKm,cantidadKm,importeKm,descriptAp,importeAp,descriptParking,importeParking, " & _
  12.                                                  "descriptAlojamiento,importeAlojamiento,descriptBiTrans,importeBiTrans,descriptAlVehi, " & _
  13.                                                  "importeAlVehi,descriptCombustible,importeCombustible,descriptManu,importeManu,totalGastosViaje, " & _
  14.                                                  "descriptRelaPublic,importeRelaPublic,totalRelaPublic,decriptFeriExpo,importeFeriExpo,descriptRegalObs, " & _
  15.                                                  "importeRegalObs,descriptCataFolletos,importeCataFolletos,descriptInternet,importeInternet, " & _
  16.                                                  "descriptGastosExcep,importeGastosExcep,totalOtros,GastosTotales) " & _
  17.                                                  "VALUES(@idhoja,@idempleado,@fecha,@clienteProveedor,@destino,@descriptKm,@cantidadKm,@importeKm,@descriptAp, " & _
  18.                                                  "@importeAp,@descriptParking,@importeParking,@descriptAlojamiento,@importeAlojamiento,@descriptBiTrans " & _
  19.                                                  "@importeBiTrans,@descriptAlVehi,@importeAlVehi,@descriptCombustible,@importeCombustible,@descriptManu " & _
  20.                                                  "@importeManu,@totalGastosViaje,@descriptRelaPublic,@importeRelaPublic,@totalRelaPublic,@decriptFeriExpo " & _
  21.                                                  "@importeFeriExpo,@descriptRegalObs,@importeRegalObs,@descriptCataFolletos,@importeCataFolletos,@descriptInternet " & _
  22.                                                  "@importeInternet,@descriptGastosExcep,@importeGastosExcep,@totalOtros,@GastosTotales)", conn)
  23.  
  24.         Try
  25.             With comm2
  26.                 .CommandType = CommandType.Text
  27.                 .Parameters.AddWithValue("idempleado", idempleado)
  28.             End With
  29.  
  30.             With comm3
  31.                 .CommandType = CommandType.Text
  32.                 .Parameters.AddWithValue("idhoja", 1)
  33.                 .Parameters.AddWithValue("idempleado", idempleado)
  34.                 .Parameters.AddWithValue("fecha", TxtFechaLG.Text.Trim())
  35.                 .Parameters.AddWithValue("clienteProveedor", TxtClienProvLG.Text.Trim())
  36.                 .Parameters.AddWithValue("destino", TxtDestinoLG.Text.Trim())
  37.                 .Parameters.AddWithValue("descriptKm", TextDescripkmLG.Text.Trim())
  38.                 .Parameters.AddWithValue("cantidadKm", CDec(TextCantidadKmLG.Text.Trim()))
  39.                 .Parameters.AddWithValue("importeKm", CDec(TextImporteKmLG.Text.Trim()))
  40.                 .Parameters.AddWithValue("descriptAp", TextDescripApLG.Text.Trim())
  41.                 .Parameters.AddWithValue("importeAp", CDec(TextImporteApLG.Text.Trim()))
  42.                 .Parameters.AddWithValue("descriptParking", TextDescripParkLG.Text.Trim())
  43.                 .Parameters.AddWithValue("importeParking", CDec(TextImporteParkLG.Text.Trim()))
  44.                 .Parameters.AddWithValue("descriptAlojamiento", TextDescripAlojLG.Text.Trim())
  45.                 .Parameters.AddWithValue("importeAlojamiento", CDec(TextImporteAlojLG.Text.Trim()))
  46.                 .Parameters.AddWithValue("descriptBiTrans", TextDescripBiTransLG.Text.Trim())
  47.                 .Parameters.AddWithValue("importeBiTrans", CDec(TextImporteBiTransLG.Text.Trim()))
  48.                 .Parameters.AddWithValue("descriptAlVehi", TextDescripAlVehiLG.Text.Trim())
  49.                 .Parameters.AddWithValue("importeAlVehi", CDec(TextImporteAlVehiLG.Text.Trim()))
  50.                 .Parameters.AddWithValue("descriptCombustible", TextDescripComVehiLG.Text.Trim())
  51.                 .Parameters.AddWithValue("importeCombustible", CDec(TextImporteComVehiLG.Text.Trim()))
  52.                 .Parameters.AddWithValue("descriptManu", TextDescripManuLG.Text.Trim())
  53.                 .Parameters.AddWithValue("importeManu", CDec(TextImporteManuLG.Text.Trim()))
  54.                 .Parameters.AddWithValue("totalGastosViaje", CDec(TextImporteTotGastosLG.Text.Trim()))
  55.                 .Parameters.AddWithValue("descriptRelaPublic", TextDescripRelaPubliLG.Text.Trim())
  56.                 .Parameters.AddWithValue("importeRelaPublic", CDec(TextImporteRelaPubliLG.Text.Trim()))
  57.                 .Parameters.AddWithValue("totalRelaPublic", CDec(TextImporteTotalRePuLG.Text.Trim()))
  58.                 .Parameters.AddWithValue("decriptFeriExpo", TextDescripFeriExpoLG.Text.Trim())
  59.                 .Parameters.AddWithValue("importeFeriExpo", CDec(TextImporteFeriExpoLG.Text.Trim()))
  60.                 .Parameters.AddWithValue("descriptRegalObs", TextDescripRegalObsLG.Text.Trim())
  61.                 .Parameters.AddWithValue("importeRegalObs", CDec(TextImporteRegObsLG.Text.Trim()))
  62.                 .Parameters.AddWithValue("descriptCataFolletos", TextDescripCatFoLG.Text.Trim())
  63.                 .Parameters.AddWithValue("importeCataFolletos", CDec(TextImporteCatFoLG.Text.Trim()))
  64.                 .Parameters.AddWithValue("descriptInternet", TextDescripInternetLG.Text.Trim())
  65.                 .Parameters.AddWithValue("importeInternet", CDec(TextImporteInternetLG.Text.Trim()))
  66.                 .Parameters.AddWithValue("descriptGastosExcep", TextDescripGastosExcepLG.Text.Trim())
  67.                 .Parameters.AddWithValue("importeGastosExcep", CDec(TextImporteGastosExcepLG.Text.Trim()))
  68.                 .Parameters.AddWithValue("totalOtros", CDec(TextImporteTotalOtrosLG.Text.Trim()))
  69.                 .Parameters.AddWithValue("GastosTotales", CDec(TextTotGastosCantiLG.Text.Trim()))
  70.             End With
  71.  
  72.             Using conn
  73.  
  74.                 conn.Open()
  75.                 With comm2
  76.                     reader2 = .ExecuteReader()
  77.                     While reader2.Read()
  78.                         existeEmpleado = reader2.GetValue(0)
  79.                     End While
  80.                     .Dispose()
  81.                 End With
  82.  
  83.                 If conn.State = ConnectionState.Open Then
  84.  
  85.                     conn.Close()
  86.                 End If
  87.  
  88.                 If existeEmpleado = 0 Then
  89.                     conn.Open()
  90.                     With comm2
  91.                         .ExecuteNonQuery()
  92.                         .Dispose()
  93.                     End With
  94.                 Else
  95.                     ValidacionAsterisco2.Text = "*"
  96.                     Validacion3.Text = ("Datos del usuario guardados anteriormente")
  97.                 End If
  98.             End Using
  99.         Catch ex As Exception
  100.  
  101.             MsgBox("Error en BD" & Chr(13) & Chr(13) & ex.Message)
  102.             'mensaje("Error en BD" & Chr(13) & Chr(13) & ex.Message)
  103.         Finally
  104.             conn.Close()
  105.             conn.Dispose()
  106.         End Try
  107.         BtnImprimirLG.Visible = True
  108.     End Sub
__________________
Gracias por todo;

Un saludo
  #2 (permalink)  
Antiguo 10/12/2012, 08:20
Avatar de Aquaventus  
Fecha de Ingreso: junio-2010
Ubicación: Lima-Peru , En el alba de la naturaleza
Mensajes: 2.105
Antigüedad: 13 años, 10 meses
Puntos: 267
Respuesta: Hacer un insert con vb.net

Hola maialenlopez, está bien, pero aqui el detalle es que ocupas demasiado con la query del SQL, lo recomandable sería que tengas eso en una procedure, y a este procedure pasarle lo parametros nada mas. de manera que es más óptimo para tu aplicación. Saludos!.
__________________
Internet es tener todo el conocimiento global a tu disposición.
Desarrollo de Software - Ejemplos .Net
  #3 (permalink)  
Antiguo 10/12/2012, 08:24
 
Fecha de Ingreso: abril-2012
Mensajes: 449
Antigüedad: 12 años, 1 mes
Puntos: 7
Respuesta: Hacer un insert con vb.net

Ok, Entonces haré un procedure tal y como me has comentado para que sea mas visible y mas optimo.
Lo que pasa es que ejecuto y luego compruebo si se ha introducido algo en la base de datos y no tengo nada en ella.

No se xq?
__________________
Gracias por todo;

Un saludo
  #4 (permalink)  
Antiguo 10/12/2012, 08:28
Avatar de Aquaventus  
Fecha de Ingreso: junio-2010
Ubicación: Lima-Peru , En el alba de la naturaleza
Mensajes: 2.105
Antigüedad: 13 años, 10 meses
Puntos: 267
Respuesta: Hacer un insert con vb.net

En los parametros que les pasas van con los "@" :
Código vb:
Ver original
  1. .Parameters.AddWithValue("@idhoja", 1)
  2. .Parameters.AddWithValue("@idempleado", idempleado)
  3. .Parameters.AddWithValue("@fecha", TxtFechaLG.Text.Trim())
  4. '...
Y asi para cada uno. Saludos!.
__________________
Internet es tener todo el conocimiento global a tu disposición.
Desarrollo de Software - Ejemplos .Net
  #5 (permalink)  
Antiguo 10/12/2012, 08:45
 
Fecha de Ingreso: abril-2012
Mensajes: 449
Antigüedad: 12 años, 1 mes
Puntos: 7
Respuesta: Hacer un insert con vb.net

E intentado poniendo la @ delante pero no me función hace todo bien, no da ningún error según voy depurando pero una vez que termino de depurar compruebo en la base de datos y no hay nada introducido.
__________________
Gracias por todo;

Un saludo
  #6 (permalink)  
Antiguo 10/12/2012, 08:51
Avatar de Aquaventus  
Fecha de Ingreso: junio-2010
Ubicación: Lima-Peru , En el alba de la naturaleza
Mensajes: 2.105
Antigüedad: 13 años, 10 meses
Puntos: 267
Respuesta: Hacer un insert con vb.net

un errorcito tienes dentro de tu condicion le pasas el comm2 cuando deberia ser el comm3 :
Código vb:
Ver original
  1. If existeEmpleado = 0 Then
  2.                     conn.Open()
  3.                     With comm3
  4.                         .ExecuteNonQuery()
  5.                         .Dispose()
  6.                     End With
  7.                 Else
  8.                     ValidacionAsterisco2.Text = "*"
  9.                     Validacion3.Text = ("Datos del usuario guardados anteriormente")
  10.                 End If
Saludos!.
__________________
Internet es tener todo el conocimiento global a tu disposición.
Desarrollo de Software - Ejemplos .Net
  #7 (permalink)  
Antiguo 10/12/2012, 09:20
 
Fecha de Ingreso: abril-2012
Mensajes: 449
Antigüedad: 12 años, 1 mes
Puntos: 7
Respuesta: Hacer un insert con vb.net

Muchisimas gracias, me va perfecto.

tenia ya la cabeza..... y no veía ese error.

Gracias
__________________
Gracias por todo;

Un saludo

Etiquetas: vb
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 00:12.