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...

| |||
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 !! |
| ||||
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 |
| ||||
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 ![]() ![]() |
| ||||
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 |
| ||||
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 |
| ||||
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 |