Problema Con ComboBox y Procedimiento almacenado
Tengo un sistema programado en capas, en la capa de datos me conecto a una base de datos SQL y consulto un procedimiento almacenado para obtener direcciones Segun el Codigo Postal, como lo siguiente:
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
En la capa de presentacion mando a llamar dicha funcion, para Colonia utilizo un ComboBox, porque puedo tener mas de una, el PROBLEMA ES QUE SOLO VEO UNA COLONIA, PARA DELEGACION Y ESTADO UTILIZO TEXTBOX YA QUE ESTA SOLO TIENEN UN DATO
He aqui la programacion de la capa de presentacion
Private Sub Codigos()
Dim oInmuebles As Entidades.Inmuebles
Dim oInmueblesNegocio As New Negocio.Inmuebles
' cmbEst.Items.AddRange([Enum].GetNames(GetType(Entidades.Contacto.EdoStatusB)))
Try
oInmuebles = oInmueblesNegocio.BusCodPos(CP)
If oInmuebles.Count > 0 Then
With oInmuebles(0)
txtCol.Text = .Col
cmbCol.Text = .Col
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
Aclaro que ya he utilizado
cmbCol.DataSource
cmbCol.DisplayMember
Pero me manda error
Alguna ayudita
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
En la capa de presentacion mando a llamar dicha funcion, para Colonia utilizo un ComboBox, porque puedo tener mas de una, el PROBLEMA ES QUE SOLO VEO UNA COLONIA, PARA DELEGACION Y ESTADO UTILIZO TEXTBOX YA QUE ESTA SOLO TIENEN UN DATO
He aqui la programacion de la capa de presentacion
Private Sub Codigos()
Dim oInmuebles As Entidades.Inmuebles
Dim oInmueblesNegocio As New Negocio.Inmuebles
' cmbEst.Items.AddRange([Enum].GetNames(GetType(Entidades.Contacto.EdoStatusB)))
Try
oInmuebles = oInmueblesNegocio.BusCodPos(CP)
If oInmuebles.Count > 0 Then
With oInmuebles(0)
txtCol.Text = .Col
cmbCol.Text = .Col
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
Aclaro que ya he utilizado
cmbCol.DataSource
cmbCol.DisplayMember
Pero me manda error
Alguna ayudita