none
guardar datos de un combobox a una tabla de sql

    Pregunta

  • Buenas nuevamente con una consulta que es la siguiente

    deseo guardar los datos que tengo en un combobox en una tabla de sql 2008, cabe aclarar que para "generar" datos en el combo box tengo este código

            With Cmd
                .CommandType = CommandType.Text
                .CommandText = "Select * From perfil"
                .Connection = Cn
            End With
            Da.SelectCommand = Cmd
            Dt = New DataTable
            Da.Fill(Dt)
            With cbperfil
                .DataSource = Dt
                .DisplayMember = "p_usuario"
                .ValueMember = "id_perfil"
            End With

    que funciona a la perfeccion

    miércoles, 14 de septiembre de 2016 17:18

Respuestas

  • Jhon Douglas,

    Entiendo que la tabla debería persistir el valor identificador de los elementos, ¿verdad?, es decir, el valor que refiere la propiedad 'ValueMember' (siguiendo el caso del ejemplo anterior):

    Try
            Using cn As New SqlConnection("<Colocar cadena de conexión>")
                Dim ConsultaSQL As String = "INSERT INTO T (nombre, id_Perfil) VALUES (@nombre, @id_Perfil)"	
    	    Dim cmd As New SqlCommand(ConsultaSQL, cn)
    		
    	    cmd.Parameters.AddWithValue("@nombre", txtNombre.Text)
    	    cmd.Parameters.AddWithValue("@id_Perfil", Convert.ToInt32(cbperfil.SelectedValue))
    		
    	    cn.Open()
    		
    	    cmd.ExecuteNonQuery()	
    	End Using
    Catch ex As Exception
    	MessageBox.Show(ex.Message)
    End Try


    Espero que la información proporcionada te haya sido de utilidad, quedo atento a tus comentarios.
    miércoles, 14 de septiembre de 2016 17:31

Todas las respuestas

  • Jhon Douglas,

    Entiendo que la tabla debería persistir el valor identificador de los elementos, ¿verdad?, es decir, el valor que refiere la propiedad 'ValueMember' (siguiendo el caso del ejemplo anterior):

    Try
            Using cn As New SqlConnection("<Colocar cadena de conexión>")
                Dim ConsultaSQL As String = "INSERT INTO T (nombre, id_Perfil) VALUES (@nombre, @id_Perfil)"	
    	    Dim cmd As New SqlCommand(ConsultaSQL, cn)
    		
    	    cmd.Parameters.AddWithValue("@nombre", txtNombre.Text)
    	    cmd.Parameters.AddWithValue("@id_Perfil", Convert.ToInt32(cbperfil.SelectedValue))
    		
    	    cn.Open()
    		
    	    cmd.ExecuteNonQuery()	
    	End Using
    Catch ex As Exception
    	MessageBox.Show(ex.Message)
    End Try


    Espero que la información proporcionada te haya sido de utilidad, quedo atento a tus comentarios.
    miércoles, 14 de septiembre de 2016 17:31
  •  Try
                Dim sql As String = "insert into nuevo_usuario values (@Nombre,@Paterno,@Materno,@id_perfil,@edad,@Direccion,@telefono, @contrasena)"
                Dim cmd As New SqlCommand(sql, Cn)
                cmd.CommandType = CommandType.Text
                cmd.Parameters.AddWithValue("@Nombre", txtnombre.Text)
                cmd.Parameters.AddWithValue("@Paterno", txtpaterno.Text)
                cmd.Parameters.AddWithValue("@Materno", txtmaterno.Text)
                cmd.Parameters.AddWithValue("@edad", txtedad.Text)
                cmd.Parameters.AddWithValue("@direccion", txtdireccion.Text)
                cmd.Parameters.AddWithValue("@telefono", txttelefono.Text)
                cmd.Parameters.AddWithValue("@contrasena", txtcontra.Text)
                cmd.Parameters.AddWithValue("@id_perfil", Convert.ToInt32(cbperfil.SelectedValue))
                Cn.Open()
                cmd.ExecuteNonQuery()
                End using

            Catch ex As Exception
                MessageBox.Show(ex.Message)
            End Try

    este es el código pero me genera un error que es el siguiente

    Error 1 'End Using' debe ir precedida de la instrucción 'Using' correspondiente. 

    o talvez me equivoque en algún lugar


    • Editado Jhon Douglas miércoles, 14 de septiembre de 2016 17:47
    miércoles, 14 de septiembre de 2016 17:46
  • Jhon Douglas,

    Claro, dejaste olvidado la instrucción using:

    Try
            Using cn As New SqlConnection("<Colocar cadena de conexión>")
                    Dim sql As String = "insert into nuevo_usuario values 
                    '<...>
            End Using



    Espero que la información proporcionada te haya sido de utilidad, quedo atento a tus comentarios.
    miércoles, 14 de septiembre de 2016 18:14