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

ComboBox en visual net con SqlServer

Estas en el tema de ComboBox en visual net con SqlServer en el foro de .NET en Foros del Web. Hola a todos tengo un directorio con sus diferentes campos nombre, calle, colonia, cp, municipio, estado. los datos de nombre, calle y teléfono los allimento ...
  #1 (permalink)  
Antiguo 21/09/2009, 17:52
 
Fecha de Ingreso: agosto-2008
Mensajes: 142
Antigüedad: 15 años, 9 meses
Puntos: 2
ComboBox en visual net con SqlServer

Hola a todos
tengo un directorio con sus diferentes campos
nombre, calle, colonia, cp, municipio, estado.

los datos de nombre, calle y teléfono los allimento de una tabla de sql server
los datos de colonia, delegacion o municipio y estado los obtengo de una base de datos...
como obtengo los datos?
me posiciono sobre el text CP, le alimento el CP que necesito y como respuesta obtengo delegacion o municipio, estado y colonia, via un procedimiento almacenado en la base de datos.
mi problema es que un CP, puede contener mas de una colonia, a veces dos y a veces hasta ocho, utilizo un ComboBox para seleccionar que colonia, mi problema
es que me manda un error...
cmbCol.DataSource= .Col
cmbCol.Displaymember= .Col
cmbCol-SelectedIndex=0


¿ALGUN EXPERTO EN COMBOBOX, PROCEDIMIENTOS ALMACENADOS Y VISUALBASIC NET 2008?
GRACIAS DE ANTEMANO...
  #2 (permalink)  
Antiguo 22/09/2009, 13:17
Avatar de eperedo  
Fecha de Ingreso: septiembre-2009
Ubicación: Perú
Mensajes: 654
Antigüedad: 14 años, 7 meses
Puntos: 16
Respuesta: ComboBox en visual net con SqlServer

En un combobox vas a llenar las colonias según el CP??
Pues tendrías que construir una consulta que te devuelva las colonias según CP, algo así:

Select * From Colonias Where CP = 1

y esa consulta la traes en Un DataSet, DataTable, Lista genérica, lo que estés usando y la enlazas al combobox:

cmbCol.DataSource = DataTable / DataSet / Lista genérica
cmbCol.DisplayMember = "Descripcion"
cmbCol.ValueMember = "Codigo"

Algo más detallado puedes agregar a mi correo y te paso algunos ejemplos.
  #3 (permalink)  
Antiguo 22/09/2009, 17:34
 
Fecha de Ingreso: agosto-2008
Mensajes: 142
Antigüedad: 15 años, 9 meses
Puntos: 2
Respuesta: ComboBox en visual net con SqlServer

antes que nada gracias por responder.
los datos de cp los tengo en Sql, y en mi capa de datos mando a llamar un procedimiento que elabore y el cual me obtiene todos los datos con solo darle el cp

mi capa de datos: Funcion que me trae todos los datos segun el cp proporcionado

Public Function BusCodPos(ByVal CP As String) As Entidades.Inmuebles
Using oCnn As SqlConnection = CreateConnection()
oCnn.Open()
Using oCmd As New SqlCommand
oCmd.Connection = oCnn
oCmd.CommandType = CommandType.StoredProcedure
oCmd.CommandText = "CodPos"
oCmd.Parameters.AddWithValue("@CP", CP)
Dim oInmuebles As New Entidades.Inmuebles
Try
Using oReader As SqlDataReader = oCmd.ExecuteReader
Do While oReader.Read
Dim oInmueble As New Entidades.Inmueble
oInmueble.Col = oReader("Col")
oInmueble.DelMun = oReader("DelMun")
oInmueble.Estado = oReader("Estado")

oInmuebles.Add(oInmueble)
oInmueble = Nothing
Loop
Return oInmuebles
End Using
Finally
oInmuebles = Nothing
End Try
End Using
End Using
End Function
Esta funciona perfectamente, en modo depuracion puedo ver el total de colonias por cp
hasta qui todo bien

Capa de presentacion:
al dar dobleclick en el textbox cp (ya alinetado con el numero de codigo correspndiente)
me llena correctamente mis datos de municipio y estado y en colonia me pone la primera
por lo cual le meti un combobox

Private Sub Codigos()
Dim oInmuebles As Entidades.Inmuebles
Dim oInmueblesNegocio As New Negocio.Inmuebles


Try

oInmuebles = oInmueblesNegocio.BusCodPos(CP)
If oInmuebles.Count > 0 Then
With oInmuebles(0)
txtCol.Text = .Col ORIGINALMENTE TEXTBOX, PERO COMO EN OCASIONES SON
cmbCol.Text = .Col MAS DE UNA USE EL COMBOBOX cmbCol
txtDelMun.Text = .DelMun
txtEst.Text = .Estado
End With
Else
MessageBox.Show("El CP solicitado no existe. Verifique.", Me.Text, MessageBoxButtons.OK, MessageBoxIcon.Asterisk)
'grpDir.Enabled = False
'btnAceptar.Visible = False
End If

Catch ex As Exception
'Muestra el error ocurrido
MessageBox.Show(ex.Message, Me.Text, MessageBoxButtons.OK, MessageBoxIcon.Error)

Finally
'Liberamos memoria
oInmuebles = Nothing
oInmueblesNegocio = Nothing
End Try

End Sub

al dar doble click me llama a codigos, el problema es que el combo solo me presenta la primera colonia y no me da opcion de mas
si uso DataSource, me manda error
  #4 (permalink)  
Antiguo 22/09/2009, 22:21
Avatar de eperedo  
Fecha de Ingreso: septiembre-2009
Ubicación: Perú
Mensajes: 654
Antigüedad: 14 años, 7 meses
Puntos: 16
Respuesta: ComboBox en visual net con SqlServer

A ver supongo que Entidades.Inmuebles es una clase que tiene una propiedad Col que es la que le pasas al combobox, el tema es que tu estás trayendo una entidad, la cual maximo podrá tener una fila por así decirlo, debes construir un método que te devulva una lista de Entidades.Inmuebles, es decir; List Of(Entidades.Inmuebles), tengo unos ejemplos que podrían ayudarte cuestión de que me agregues al msn o puedes revisar mi blog, la url está en mi perfil hay ejemplos de como traer listado de entidades las cuales puedes asignarlas al DataSource del combobox.
  #5 (permalink)  
Antiguo 23/09/2009, 08:27
 
Fecha de Ingreso: agosto-2008
Mensajes: 142
Antigüedad: 15 años, 9 meses
Puntos: 2
Respuesta: ComboBox en visual net con SqlServer

Exacto
Public Class Inmuebles
Inherits List(Of Inmueble)
End Class
asi la tengo
  #6 (permalink)  
Antiguo 16/12/2009, 13:12
 
Fecha de Ingreso: diciembre-2009
Mensajes: 2
Antigüedad: 14 años, 5 meses
Puntos: 0
Respuesta: ComboBox en visual net con SqlServer

Cita:
Iniciado por eperedo Ver Mensaje
En un combobox vas a llenar las colonias según el CP??
Pues tendrías que construir una consulta que te devuelva las colonias según CP, algo así:

Select * From Colonias Where CP = 1

y esa consulta la traes en Un DataSet, DataTable, Lista genérica, lo que estés usando y la enlazas al combobox:

cmbCol.DataSource = DataTable / DataSet / Lista genérica
cmbCol.DisplayMember = "Descripcion"
cmbCol.ValueMember = "Codigo"

Algo más detallado puedes agregar a mi correo y te paso algunos ejemplos.
AYUDAAAAAAAAAAAA!!!!!!!!!!!!!!!!!!!....

hola lo que pasa es que me dejaron de tarea hacer una conexion con una base de datos de sql y lo que estoy intentando realizar es que se muestren las tablas de la base de datos en un combobox pero no logro hacerlo y necesito AYUDAAAAAA!!!! ....necesito un ejemplo por favorrrrrrrrrrr
  #7 (permalink)  
Antiguo 16/12/2009, 18:47
 
Fecha de Ingreso: agosto-2008
Mensajes: 142
Antigüedad: 15 años, 9 meses
Puntos: 2
Respuesta: ComboBox en visual net con SqlServer

Mira los ejemplos que tengo en este momento son de programacion en capas
entonces es algo un poco mas complejo

lo que tu necesitas es hacer una conexion a una base de datos
dar de alta un dataadapter
un command
y por ultimo enlazar el combo.
  #8 (permalink)  
Antiguo 16/12/2009, 18:53
 
Fecha de Ingreso: agosto-2008
Mensajes: 142
Antigüedad: 15 años, 9 meses
Puntos: 2
Respuesta: ComboBox en visual net con SqlServer

Te mando un ejemplo que posteo alguna el Ing. Fernando Luque Sánchez
de trujillo Peru.
espero te sirva


Imports System.Data
Imports System.Data.SqlClient

Public Class frmcombos
Inherits System.Windows.Forms.Form
Dim cn As SqlConnection
Dim dsDatos As DataSet
Dim daClientes As SqlDataAdapter
Dim daOrdenes As SqlDataAdapter
Dim reClientesOrdenes As DataRelation

Private Sub Cargar(ByVal sender As System.Object, _
ByVal e As System.EventArgs) Handles MyBase.Load

'Nueva instancia de la cadena de conexion
cn = New SqlConnection("user id=sa; pwd=microsoft;data source=.;persist security info=False;initial catalog=Northwind")
'El Adaptador
daClientes = New SqlDataAdapter("select customerid, companyname, contactname from customers", cn)
'Instancia del DataSet
dsDatos = New DataSet
'Llenar el DataSet
daClientes.Fill(dsDatos, "Clientes")
'Origen del Combo Clientes
Me.cboClientes.DataSource = dsDatos.Tables("Clientes")
Me.cboClientes.DisplayMember = dsDatos.Tables("Clientes").Columns("CustomerId").T oString
Me.cboClientes.SelectedIndex = 0
Me.lblCliente.Text = dsDatos.Tables("Clientes").Rows(Me.cboClientes.Sel ectedIndex)("CompanyName").ToString

'Crear la tabla con órdenes
daOrdenes = New SqlDataAdapter("select orderid, customerid, orderdate, freight from orders", cn)
daOrdenes.Fill(dsDatos, "Ordenes")

'Origen del Combo Órdenes
Me.cboOrdenes.DataSource = dsDatos.Tables("Ordenes")
Me.cboOrdenes.DisplayMember = dsDatos.Tables("Ordenes").Columns("OrderId").ToStr ing
Me.cboOrdenes.SelectedIndex = 0

'Mostrar el otro combo - Filtrar
Me.verOrdenes()
Me.lblCantidad.Text = Me.cboOrdenes.Items.Count.ToString '+ " órdenes"

Me.StatusBar1.Panels(1).Text = "Fecha: " + CType(Format(Today, "Short Date"), String)
Me.StatusBar1.Panels(2).Text = "MCSD .Net Ing. Fernando Luque Sánchez"
Me.StatusBar1.Panels(3).Text = "Trujillo - Perú"

End Sub

Private Sub verOrdenes()
'crear una vista para filtrar
Dim dvOrdenes As New DataView(dsDatos.Tables("Ordenes"))
dvOrdenes.RowFilter = "CustomerId = '" & Me.cboClientes.Text & "'"
Me.cboOrdenes.DataSource = dvOrdenes
End Sub

Private Sub SeleccionarCliente(ByVal sender As System.Object, _
ByVal e As System.EventArgs) Handles cboClientes.SelectedIndexChanged

verOrdenes()
Me.lblCliente.Text = dsDatos.Tables("Clientes").Rows(cboClientes.Select edIndex)("CompanyName").ToString
Me.lblCantidad.Text = Me.cboOrdenes.Items.Count.ToString
End Sub

'Para el contador
Dim vcuenta As Integer

Private Sub AgregarLista(ByVal sender As System.Object, _
ByVal e As System.EventArgs) Handles Button1.Click

'Me.ListView1.Items.Add(Me.TextBox1.Text)
'Me.ListView1.Items(vcuenta).SubItems.Add(Me.TextB ox2.Text)
'vcuenta += 1
End Sub

Private Sub StatusBar1_PanelClick(ByVal sender As System.Object, ByVal e As System.Windows.Forms.StatusBarPanelClickEventArgs) Handles StatusBar1.PanelClick

End Sub
End Class
  #9 (permalink)  
Antiguo 17/12/2009, 12:31
 
Fecha de Ingreso: diciembre-2009
Mensajes: 2
Antigüedad: 14 años, 5 meses
Puntos: 0
Respuesta: ComboBox en visual net con SqlServer

Cita:
Iniciado por asastrem Ver Mensaje
Te mando un ejemplo que posteo alguna el Ing. Fernando Luque Sánchez
de trujillo Peru.
espero te sirva


Imports System.Data
Imports System.Data.SqlClient

Public Class frmcombos
Inherits System.Windows.Forms.Form
Dim cn As SqlConnection
Dim dsDatos As DataSet
Dim daClientes As SqlDataAdapter
Dim daOrdenes As SqlDataAdapter
Dim reClientesOrdenes As DataRelation

Private Sub Cargar(ByVal sender As System.Object, _
ByVal e As System.EventArgs) Handles MyBase.Load

'Nueva instancia de la cadena de conexion
cn = New SqlConnection("user id=sa; pwd=microsoft;data source=.;persist security info=False;initial catalog=Northwind")
'El Adaptador
daClientes = New SqlDataAdapter("select customerid, companyname, contactname from customers", cn)
'Instancia del DataSet
dsDatos = New DataSet
'Llenar el DataSet
daClientes.Fill(dsDatos, "Clientes")
'Origen del Combo Clientes
Me.cboClientes.DataSource = dsDatos.Tables("Clientes")
Me.cboClientes.DisplayMember = dsDatos.Tables("Clientes").Columns("CustomerId").T oString
Me.cboClientes.SelectedIndex = 0
Me.lblCliente.Text = dsDatos.Tables("Clientes").Rows(Me.cboClientes.Sel ectedIndex)("CompanyName").ToString

'Crear la tabla con órdenes
daOrdenes = New SqlDataAdapter("select orderid, customerid, orderdate, freight from orders", cn)
daOrdenes.Fill(dsDatos, "Ordenes")

'Origen del Combo Órdenes
Me.cboOrdenes.DataSource = dsDatos.Tables("Ordenes")
Me.cboOrdenes.DisplayMember = dsDatos.Tables("Ordenes").Columns("OrderId").ToStr ing
Me.cboOrdenes.SelectedIndex = 0

'Mostrar el otro combo - Filtrar
Me.verOrdenes()
Me.lblCantidad.Text = Me.cboOrdenes.Items.Count.ToString '+ " órdenes"

Me.StatusBar1.Panels(1).Text = "Fecha: " + CType(Format(Today, "Short Date"), String)
Me.StatusBar1.Panels(2).Text = "MCSD .Net Ing. Fernando Luque Sánchez"
Me.StatusBar1.Panels(3).Text = "Trujillo - Perú"

End Sub

Private Sub verOrdenes()
'crear una vista para filtrar
Dim dvOrdenes As New DataView(dsDatos.Tables("Ordenes"))
dvOrdenes.RowFilter = "CustomerId = '" & Me.cboClientes.Text & "'"
Me.cboOrdenes.DataSource = dvOrdenes
End Sub

Private Sub SeleccionarCliente(ByVal sender As System.Object, _
ByVal e As System.EventArgs) Handles cboClientes.SelectedIndexChanged

verOrdenes()
Me.lblCliente.Text = dsDatos.Tables("Clientes").Rows(cboClientes.Select edIndex)("CompanyName").ToString
Me.lblCantidad.Text = Me.cboOrdenes.Items.Count.ToString
End Sub

'Para el contador
Dim vcuenta As Integer

Private Sub AgregarLista(ByVal sender As System.Object, _
ByVal e As System.EventArgs) Handles Button1.Click

'Me.ListView1.Items.Add(Me.TextBox1.Text)
'Me.ListView1.Items(vcuenta).SubItems.Add(Me.TextB ox2.Text)
'vcuenta += 1
End Sub

Private Sub StatusBar1_PanelClick(ByVal sender As System.Object, ByVal e As System.Windows.Forms.StatusBarPanelClickEventArgs) Handles StatusBar1.PanelClick

End Sub
End Class
aun mantengo un problema lo que pasa es que tengo que hacer que las tablas se muestren dentro del combobox pero por ejemplo tengo que colocar cualquier base de datos de sql y en el combo se deben de mostrar las tablas yo no lo especifico solo coloco la base de datos que sea y en el combo se deben de mostrar las tablas de esa base de datos pero noooooooooo logro realizarlo y estoy mas perdidaaaaaaaaa!!!!!!!!!!..que desesperacionnnnnnn......
  #10 (permalink)  
Antiguo 17/12/2009, 14:19
 
Fecha de Ingreso: agosto-2008
Mensajes: 142
Antigüedad: 15 años, 9 meses
Puntos: 2
Respuesta: ComboBox en visual net con SqlServer

a ver, si tienes problemas...

la bse de datos es Northwind
y la tabla es customer "clientes"
y lo que vas a mostrar son los datos de las tablas

haces el data adapter daClientes
daClientes = New SqlDataAdapter("select customerid, companyname, contactname from customers", cn)

Textualmenete:
Selecciona los campos "SELECT customerid, companyname, contactname"
desde "FROM"
TABLA "Customer"
que utiliza la conexion a la base de datos "cn"

¿que no entiendes?

esta claro y sencillo
  #11 (permalink)  
Antiguo 17/12/2009, 14:29
 
Fecha de Ingreso: agosto-2008
Mensajes: 142
Antigüedad: 15 años, 9 meses
Puntos: 2
Respuesta: ComboBox en visual net con SqlServer

Ok, ya entiendo
que tu puedas seleccionar la base de datos y segun la base de datos selecciones las tablas?
estoy en lo correcto, si es asi
checate la web del guille, el tiene unos ejemplos para seleccionar base de datos y tablas.
http://www.elguille.info/
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 12:14.