Rivx Posted June 6, 2012 Report Share Posted June 6, 2012 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 More sharing options...
AshWilliams Posted June 7, 2012 Report Share Posted June 7, 2012 Este ejemplo te viene como anillo al dedo : http://www.recursosvisualbasic.com.ar/htm/vb-net/62-bindingmanagerbase.htm Saludos cumpa ;) Link to comment Share on other sites More sharing options...
ouji_sama Posted June 9, 2012 Report Share Posted June 9, 2012 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 More sharing options...
AshWilliams Posted June 9, 2012 Report Share Posted June 9, 2012 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 SubDe servir sirve, pero el usuario esta usando SqlDataAdapter ;) Link to comment Share on other sites More sharing options...
Rivx Posted June 14, 2012 Author Report Share Posted June 14, 2012 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) 1 Link to comment Share on other sites More sharing options...
AshWilliams Posted June 14, 2012 Report Share Posted June 14, 2012 De nada cumpa....para eso estamos ;) ....caso solucionado, se procede al cierre. Saludos :krider: Link to comment Share on other sites More sharing options...
Recommended Posts