Jump to content

consulta sql, combobox y label vb.net


Recommended Posts

Señoras y Señores:

 

Tengo una duda. Resulta que debo mostrar en un label el resultado de una búsqueda en sql server, y dicha búsqueda debe hacerla un combobox.

 

Anexo lo que estoy haciendo (para ver en qué fallo):

 

Dim cadena_conexion2 As String = "data source=bd;" & "Initial Catalog=rlm;" & "Integrated Security=true"
	Dim varicone3x As New SqlConnection()

	varicone3x = New SqlConnection(cadena_conexion2)
	varicone3x.Open()
	If varicone3x.State = ConnectionState.Open Then
		Dim da2 As New SqlDataAdapter("select h_det from problemas where codi_p=" & ComboBox1.SelectedIndex & "and estado='P';", varicone3x)
		Dim det2 As New DataTable
		da2.Fill(det2)
		Label3.Text = CInt(det2.ToString)
	End If
'Por razones obvias, no voy a mostrar la base de datos aquí

 

Se puede lograr lo que quiero? Agradezco de antemano sus opiniones.

 

:8)

Link to comment
Share on other sites

si se puede, te dejo un ejemplo

 

' ESTE LLENA EL COMBOBOX

 

Private Sub llenaclientes()

Try

base.conectar()

comando = New SqlClient.SqlCommand("SELECT cli_nombre FROM clientes ORDER BY cli_nombre", base.conn)

base.datar = comando.ExecuteReader

datatable.Load(base.datar)

comando.Dispose()

base.datar.Close()

Me.ComboBox1.DataSource = datatable

Me.ComboBox1.DisplayMember = "cli_nombre"

base.desconectar()

Catch ex As Exception

'MsgBox(ex.Message)

End Try

End Sub

 

'EVENTO CAMBIA INDICE SELECCIONADO DEL COMBOBOX (HACER CLICK EN UN VALOR DE LA COMBOBOX)

 

 

Private Sub ComboBox1_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ComboBox1.SelectedIndexChanged

Try

cliente = Me.ComboBox1.Text

base.conectar()

comando = New SqlClient.SqlCommand("SELECT cli_id,cli_email,cli_tipo " _

& "FROM clientes WHERE cli_nombre='" + cliente + "'", base.conn)

base.datar = comando.ExecuteReader

base.datar.Read()

id = base.datar("cli_id")

Me.Label1.text = base.datar("cli_email")

base.datar.Close()

base.desconectar()

Catch ex As Exception

'MsgBox(ex.Message)

End Try

End Sub

Link to comment
Share on other sites

si se puede, te dejo un ejemplo

 

' ESTE LLENA EL COMBOBOX

 

Private Sub llenaclientes()

Try

base.conectar()

comando = New SqlClient.SqlCommand("SELECT cli_nombre FROM clientes ORDER BY cli_nombre", base.conn)

base.datar = comando.ExecuteReader

datatable.Load(base.datar)

comando.Dispose()

base.datar.Close()

Me.ComboBox1.DataSource = datatable

Me.ComboBox1.DisplayMember = "cli_nombre"

base.desconectar()

Catch ex As Exception

'MsgBox(ex.Message)

End Try

End Sub

 

'EVENTO CAMBIA INDICE SELECCIONADO DEL COMBOBOX (HACER CLICK EN UN VALOR DE LA COMBOBOX)

 

 

Private Sub ComboBox1_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ComboBox1.SelectedIndexChanged

Try

cliente = Me.ComboBox1.Text

base.conectar()

comando = New SqlClient.SqlCommand("SELECT cli_id,cli_email,cli_tipo " _

& "FROM clientes WHERE cli_nombre='" + cliente + "'", base.conn)

base.datar = comando.ExecuteReader

base.datar.Read()

id = base.datar("cli_id")

Me.Label1.text = base.datar("cli_email")

base.datar.Close()

base.desconectar()

Catch ex As Exception

'MsgBox(ex.Message)

End Try

End Sub

De servir sirve, pero el usuario esta usando SqlDataAdapter ;)

Link to comment
Share on other sites

Señores, se solucionó.

 

Gracias a una compañera que conocí, que me dio la receta.

 

Supongamos que existe un módulo donde estan declaradas las conexiones, el código queda de la siguiente forma:

 

'declarar estas variables para la conexión después del nombre del formulario
Private Const cs As String = "Data Source=server;" & _
						   "Integrated Security=true;" & _
						   "Initial Catalog=bd"

   Dim sentecia, sentecia2, sentencia As SqlCommand
   Dim dt, dt2 As DataTable
   Dim datap, datap2, data As SqlDataAdapter
   Dim dset As DataSet
Private Sub cargar_combo(ByVal ComboBox As Windows.Forms.ComboBox, ByVal sql As String)
    ' nueva conexión indicando al SqlConnection la cadena de conexión  
    Dim cn As New SqlConnection(cs)
    Try
	    ' Abrir la conexión a Sql  
	    cn.Open()
	    ' Pasar la consulta sql y la conexión al Sql Command   
	    Dim cmd As New SqlCommand(sql, cn)
	    ' Inicializar un nuevo SqlDataAdapter   
	    Dim da As New SqlDataAdapter(cmd)
	    'Crear y Llenar un Dataset  
	    Dim ds As New DataSet
	    da.Fill(ds)
	    ' asignar el DataSource al combobox  
	    cbo_proble.DataSource = ds.Tables(0)
	    ' Asignar el campo a la propiedad DisplayMember del combo   
	    ComboBox.DisplayMember = ds.Tables(0).Columns(1).Caption.ToString
	    ComboBox.ValueMember = ds.Tables(0).Columns(0).Caption.ToString
    Catch ex As Exception
	    MessageBox.Show(ex.Message.ToString, _
					    "error", MessageBoxButtons.OK, _
					    MessageBoxIcon.Error)
    Finally
	    If cn.State = ConnectionState.Open Then
		    cn.Close()
	    End If
    End Try
   End Sub
Sub relleno()
    Dim numero As Integer
    numero = cbo_proble.SelectedIndex
    sentencia = New SqlCommand("select h_det from problemas where codi_p=" & numero & "", con)
    data = New SqlDataAdapter(sentencia)
    dt = New DataTable
    data.Fill(dt)
    If dt.Rows.Count > 0 Then
	    Label3.Text = dt.Rows(0).Item("h_det")
    End If
   End Sub
Private Sub cbo_proble_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cbo_proble.SelectedIndexChanged
    relleno()
   End Sub
Private Sub otro_combo_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
    conexion()
    cargar_combo(cbo_proble, "select * from problemas where estado='P' order by problema asc;")
    cbo_proble.DropDownStyle = ComboBoxStyle.DropDownList
   End Sub
End Class

 

Saludos a los que ayudaron, y gracias por la paciencia.

 

:8)

  • Upvote 1
Link to comment
Share on other sites

Guest
This topic is now closed to further replies.
×
×
  • Create New...