Ver Mensaje Individual
  #1 (permalink)  
Antiguo 16/04/2016, 23:32
foweb
 
Fecha de Ingreso: abril-2016
Ubicación: Costa Rica
Mensajes: 2
Antigüedad: 8 años, 7 meses
Puntos: 0
Combobox dependientes con stored Procedure

Saludos comunidad
Tengo dos combobox cbo.Paises, cboCiudades
necesito cargar las ciudades en el combo ciudades cuando se haya selecionado un pais en el combo paises. Estoy utilizando 3 capas y un store procedure para cargar los paises es el siguiente:

CREATE PROCEDURE SP_ListarPaises
AS
SELECT *
FROM tPaises
ORDER BY tPaises.Nombre asc
GO

resultado:

Id_Pais Nombre

1 Alemania

2 Belgica

-------------------------------

esta es la funcion que realize en capadatos para agregar el storedProcedure:

Public Function ListaPaises() As DataTable
Try

cn.ConnectionString = CadenaConexion()
Dim Da As New SqlDataAdapter("SP_ListarPaises", cn)
Da.SelectCommand.CommandType = CommandType.StoredProcedure
Dim datos As New DataTable
Da.Fill(datos)
Da = Nothing
Return datos
Catch ex As Exception

MsgBox("Error" & ex.Message, MsgBoxStyle.Critical, "Informe de Error")
If cn.State = ConnectionState.Open Then cn.Close()
cn.Dispose()
Return Nothing
Finally
End Try

End Function

-------------------------------------
esta es el procedimiento que instancio en capa presentacion para llenar el combo:


Public Sub llenarComboPaises()

Dim dt As New DataTable
Dim func As New CapadatosFunciones

Try

dt = func.ListarPaises

Dim dr As DataRow = dt.NewRow()
dr("Nombre") = "Seleccione un Pais..."
dr("Id_Pais") = 0
dt.Rows.InsertAt(dr, 0)

cboPaises.SelectedValue = 0
cboPaises.DisplayMember = "Nombre"
cboPaises.ValueMember = "Id_Pais"
cboPaises.DataSource = dt

Catch ex As Exception
MsgBox(ex.Message, "No se cargaron los Paises")
End Try

End Sub


Hasta aqui me cargan los paises, ahora lo que quisiera es que al seleccionar un pais en el combo paises se me carguen las ciudades respectivas de ese pais en el combo ciudades.

hice un stored procedure para obtener las ciudades por medio de un parametro ese parametro es el id del pais, es el siguiente:

CREATE PROCEDURE SP_ListarCiudades

@parametroPais Int
AS

SELECT tCiudad.Id_Ciudad, tCiudad.Nombre
FROM tCiudad
WHERE tCiudad.Id_Pais = @parametroPais


ORDER BY tCiudad.Nombre asc
GO

Execute SP_ListarCiudades '22' ( '22 representa por ejemplo al id del pais = Usa)

---------------------------------------------

Resultado:

Id_Ciudad Nombre

1 Dallas

2 Florida

3 Whashington

---------------------------------------


como se haria ya en el codigo para hacer funcionar este stored procedure y que reciba como parametro el selectvalue del combo paises para que llene el combo ciudades . gracias