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

Sentencia Insert

Estas en el tema de Sentencia Insert en el foro de .NET en Foros del Web. Hola otra vez; Hay alguna manera de pasar como parámetros los campos de una tabla que queremos actualizar?. No los valores, sino los campos. Es ...
  #1 (permalink)  
Antiguo 24/06/2004, 19:00
Avatar de luiscl  
Fecha de Ingreso: abril-2004
Ubicación: Zaragoza
Mensajes: 305
Antigüedad: 20 años
Puntos: 0
Sentencia Insert

Hola otra vez;

Hay alguna manera de pasar como parámetros los campos de una tabla que queremos actualizar?. No los valores, sino los campos. Es decir, algo así:

INSERT INTO TABLA (@campo1, @campo2) VALUES (@valor1, @valor2) Where loquesea

Gracias...
__________________
Pide lo que quieras...y luego paga por ello
  #2 (permalink)  
Antiguo 24/06/2004, 19:53
 
Fecha de Ingreso: mayo-2004
Ubicación: Guadalajara, Jalisco, México
Mensajes: 724
Antigüedad: 20 años
Puntos: 6
Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
'Introducir aquí el código de usuario para inicializar la página
If MyClass.SaveData("Alumnos", "IdAlumno", "Nombre", "Edad", "Stream", 22, 3399) Then
Response.Write("Alumno agregado,ok")
Else
Response.Write("No se pudo agregar el alumno !!")
End If
End Sub



Public Function SaveData(ByVal Tabla As String, ByVal IdCampo As String, ByVal Campo1 As String, ByVal Campo2 As String, ByVal ValorCampo1 As String, ByVal ValorCampo2 As Integer, ByVal IdValor As Integer) As Boolean
Dim strInsert As String = "INSERT INTO " & Tabla & "(" & Campo1 & "," & Campo2 & ")VALUES('" & ValorCampo1 & "'," & ValorCampo2 & ") WHERE " & IdCampo & "=" & IdValor
'tu implementacion de adicion aqui
'..
'..
Return True
End Function



Bueno.. es solo un ejemplo.. espero que te sirva...
Saludos !!
  #3 (permalink)  
Antiguo 24/06/2004, 23:28
Avatar de SunDarK  
Fecha de Ingreso: diciembre-2003
Ubicación: Jerez de la Frontera
Mensajes: 1.193
Antigüedad: 20 años, 4 meses
Puntos: 8
Si claro
Cita:
INSERT INTO TABLA(CAMPO1,CAMPO3,CAMPO8) VALUES (@CAMPO1,@CAMPO3,@CAMPO8)
Salu2
  #4 (permalink)  
Antiguo 25/06/2004, 01:31
Avatar de luiscl  
Fecha de Ingreso: abril-2004
Ubicación: Zaragoza
Mensajes: 305
Antigüedad: 20 años
Puntos: 0
Ok, gracias a los dos. Voy a probar.

Un saludo.
__________________
Pide lo que quieras...y luego paga por ello
  #5 (permalink)  
Antiguo 25/06/2004, 04:00
Avatar de luiscl  
Fecha de Ingreso: abril-2004
Ubicación: Zaragoza
Mensajes: 305
Antigüedad: 20 años
Puntos: 0
Hola de nuevo. He puesto esto y me da como error que faltal el ";" en la instrucción sql

Tabla = "DAT_Alojamientos"
stringidentificador = "Identificador"
rutafoto = lblrutafoto.Text
valoridentificador = lblidentificadorrecuperado.Text
seleccionstringGfotos = "INSERT INTO " & Tabla & "(" & campofoto & ")VALUES('" & rutafoto & "') WHERE " & stringidentificador & "=" & valoridentificador & ";"

Si quito el final (& ";"), me sigue dando el mismo error...

Help!!!
__________________
Pide lo que quieras...y luego paga por ello
  #6 (permalink)  
Antiguo 25/06/2004, 04:05
Avatar de SunDarK  
Fecha de Ingreso: diciembre-2003
Ubicación: Jerez de la Frontera
Mensajes: 1.193
Antigüedad: 20 años, 4 meses
Puntos: 8
Esa sentencia está mal construida,es asi
"INSERT INTO " & Tabla & " (@" & campofoto & ") VALUES ('" & rutafoto & '") WHERE( " & stringidentificador & " = '" & valoridentificador & "')"

Recuerda que valoridentificador es una cadena de caracteres,puesto que tendras que comparar con '
Es decir quedaria
INSERT INTO FOTOS (@RUTAFOTO) VALUES ('RUTAFOTO') WHERE (CAMPOFOTO = 'DSC')

Por ejemplo
  #7 (permalink)  
Antiguo 25/06/2004, 04:27
Avatar de luiscl  
Fecha de Ingreso: abril-2004
Ubicación: Zaragoza
Mensajes: 305
Antigüedad: 20 años
Puntos: 0
hummmm...me parece que además de esto mi error es otro: uno mucho más patético. Estoy tratando de insertar campos dentro de un registro ya creado. Es decir, que grabo los campos del registro por partes, de modo que primero grabo los datos administrativos, y luego los de las fotografías...pero todos pertenecen al mismo registro (es decir: Son registros de una misma tabla).

El Where hace referencia al campo clave de la tabla...con lo que me parece que debería estar haciendo un update y no un insert (independiéntemente de que la expresión estuviese mal creada)
__________________
Pide lo que quieras...y luego paga por ello
  #8 (permalink)  
Antiguo 25/06/2004, 04:33
Avatar de SunDarK  
Fecha de Ingreso: diciembre-2003
Ubicación: Jerez de la Frontera
Mensajes: 1.193
Antigüedad: 20 años, 4 meses
Puntos: 8
Si,debes hacer un UPDATE si lo ingresas "en dos partes",yo he hecho eso en mi proyecto jejeje,un saludo
  #9 (permalink)  
Antiguo 25/06/2004, 09:49
Avatar de luiscl  
Fecha de Ingreso: abril-2004
Ubicación: Zaragoza
Mensajes: 305
Antigüedad: 20 años
Puntos: 0
Un poquito sí me está desesperando esto...a ver si le encontráis el error:

If lblcampoimagen.Text = "Imagen1" Then
seleccionstringGfotos = "UPDATE DAT_Alojamientos SET Imagen1= @imagen1 WHERE Identificador = @identificador"
seleccionGfotos.Parameters.Add(New OleDbParameter("@imagen1", OleDbType.VarChar, 100))
seleccionGfotos.Parameters("@imagen1").Value = Server.HtmlEncode(lblrutafoto.Text)
seleccionGfotos.Parameters.Add(New OleDbParameter("@identificador", OleDbType.VarChar, 100))
seleccionGfotos.Parameters("@identificador").Value = Server.HtmlEncode(lblidentificadorrecuperado.Text)
End If


seleccionGfotos = New OleDbCommand(seleccionstringGfotos, conexionGfotos)

conexionGfotos.Open()
seleccionGfotos.ExecuteNonQuery()
conexionGfotos.Close()
__________________
Pide lo que quieras...y luego paga por ello
  #10 (permalink)  
Antiguo 25/06/2004, 09:50
Avatar de luiscl  
Fecha de Ingreso: abril-2004
Ubicación: Zaragoza
Mensajes: 305
Antigüedad: 20 años
Puntos: 0
ah, me dice que falta el valor de alguno de los parámetros
__________________
Pide lo que quieras...y luego paga por ello
  #11 (permalink)  
Antiguo 25/06/2004, 11:01
Avatar de luiscl  
Fecha de Ingreso: abril-2004
Ubicación: Zaragoza
Mensajes: 305
Antigüedad: 20 años
Puntos: 0
Solucionado. El problema era que definía el OleDbCommand después de darles valor a los parámetros, cuando hay que definirlo justo antes.

Gracias por la ayuda!
__________________
Pide lo que quieras...y luego paga por ello
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 16:26.