Ver Mensaje Individual
  #3 (permalink)  
Antiguo 22/09/2009, 17:34
asastrem
 
Fecha de Ingreso: agosto-2008
Mensajes: 142
Antigüedad: 16 años, 6 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