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

Broblemas dropdownlist anidados.

Estas en el tema de Broblemas dropdownlist anidados. en el foro de .NET en Foros del Web. Tengo 3 tablas, region , ciudad y comuna, quiero que todas vayan enlazadas cosa que si seleccionas uno cambie el valor del otro, pero tengo ...
  #1 (permalink)  
Antiguo 22/11/2012, 17:19
Avatar de Darsk  
Fecha de Ingreso: mayo-2011
Mensajes: 39
Antigüedad: 12 años, 10 meses
Puntos: 0
Pregunta Broblemas dropdownlist anidados.

Tengo 3 tablas, region , ciudad y comuna, quiero que todas vayan enlazadas cosa que si seleccionas uno cambie el valor del otro, pero tengo una falla la cual no he podido identificar, puse el metodo en el load si me cargo con una variable local , el asunto es que al moento de abrir la aplicacion tengo 2 errores,unoes que carga normalmente pero el dropdownlist no carga al seleccionar el primero, el segundo es que me dice que la conexion no ce cerro normalmente, adjunto el codigo y de antemano les aghradesco mucho.

Código c#:
Ver original
  1. public partial class frCliente : System.Web.UI.Page
  2. {
  3.     SqlConnection conn = new SqlConnection(@"Data Source=NICOLAS-PC\SQLEXPRESS;Integrated Security=True");
  4.    
  5.    
  6.     protected void Page_Load(object sender, EventArgs e)
  7.     {
  8.         if (!IsPostBack)
  9.         {
  10.             cargarRegiones();
  11.            
  12.         }
  13.        
  14.  
  15.     }
  16.    
  17.     protected void cbRegion_SelectedIndexChanged(object sender, EventArgs e)
  18.     {
  19.  
  20.         string id_region = cbRegion.SelectedValue.ToString();
  21.         SqlCommand cmd = new SqlCommand("select * from ciudad where id_region_fk = '" + id_region + "'", conn);
  22.         SqlDataAdapter da = new SqlDataAdapter(cmd.CommandText, conn);
  23.         DataSet ds = new DataSet();
  24.         da.Fill(ds);
  25.         this.cbCiudad.DataSource = ds;
  26.         this.cbCiudad.DataValueField = "id_ciudad";
  27.         this.cbCiudad.DataTextField = "nombre";
  28.         this.cbCiudad.DataBind();
  29.         if (cbCiudad.Items.Count != 0)
  30.         {
  31.             string id_ciudad = cbCiudad.SelectedValue.ToString();
  32.             cargarComunas(id_ciudad);
  33.             conn.Close();
  34.  
  35.         }
  36.         else
  37.         {
  38.             cbCiudad.Items.Clear();
  39.         }
  40.  
  41.        
  42.  
  43.         //string id_region = Convert.ToString(cbRegion.SelectedValue);
  44.         //cargarCiudades(id_region);
  45.     }
  46.     protected void cbCiudad_SelectedIndexChanged(object sender, EventArgs e)
  47.     {
  48.         string id_ciudad = Convert.ToString(cbCiudad.SelectedValue);
  49.         cargarComunas(id_ciudad);
  50.     }
  51.  
  52.     public void cargarRegiones()
  53.     {
  54.        
  55.         SqlCommand cmd = new SqlCommand("select * from region",conn);
  56.         SqlDataAdapter da = new SqlDataAdapter(cmd.CommandText, conn);
  57.         DataSet ds = new DataSet();
  58.         da.Fill(ds);
  59.         this.cbRegion.DataSource = ds;
  60.         this.cbRegion.DataValueField = "id_region";
  61.         this.cbRegion.DataTextField = "nombre";
  62.         this.cbRegion.DataBind();
  63.        
  64.  
  65.         if (cbRegion.Items.Count != 0)
  66.         {
  67.             string id_region = Convert.ToString(cbRegion.SelectedValue);
  68.             cargarCiudades(id_region);
  69.             conn.Close();
  70.  
  71.         }
  72.        
  73.        
  74.     }
  75.    
  76.      
  77.     public void cargarCiudades(string id_region)
  78.     {
  79.        
  80.        
  81.         SqlCommand cmd = new SqlCommand("select * from ciudad where id_region_fk = '"+id_region+"'",conn);
  82.         SqlDataAdapter da = new SqlDataAdapter(cmd.CommandText, conn);
  83.         DataSet ds = new DataSet();
  84.         da.Fill(ds);
  85.         this.cbCiudad.DataSource = ds;
  86.         this.cbCiudad.DataValueField = "id_ciudad";
  87.         this.cbCiudad.DataTextField = "nombre";
  88.         this.cbCiudad.DataBind();
  89.         if (cbCiudad.Items.Count != 0)
  90.         {
  91.             string id_ciudad = cbCiudad.SelectedValue.ToString();
  92.             cargarComunas(id_ciudad);
  93.             conn.Close();
  94.              
  95.         }
  96.         else
  97.         {
  98.             cbCiudad.Items.Clear();
  99.         }
  100.  
  101.        
  102.  
  103.     }
  104.  
  105.     public void cargarComunas(String id_ciudad)
  106.     {
  107.        
  108.         SqlCommand cmd = new SqlCommand("select * from comunas where id_ciudad_fk ='"+id_ciudad+"'", conn);
  109.         SqlDataAdapter da = new SqlDataAdapter(cmd.CommandText, conn);
  110.         DataSet ds = new DataSet();
  111.         da.Fill(ds);
  112.         this.cbComuna.DataSource = ds;
  113.         this.cbComuna.DataValueField = "id_comuna";
  114.         this.cbComuna.DataTextField = "nombre";
  115.         this.cbComuna.DataBind();
  116.         if(cbComuna.Items.Count !=0)
  117.         {
  118.             string id_comuna = Convert.ToString(cbComuna.SelectedValue);
  119.        
  120.         }
  121.         else
  122.         {
  123.             cbComuna.Items.Clear();
  124.         }
  125.        
  126.     }
  127.    
  128.    
  129. }
__________________
El amor mas fiel y duradero es el amor que uno se tiene.
  #2 (permalink)  
Antiguo 23/11/2012, 08:40
Avatar de Aquaventus  
Fecha de Ingreso: junio-2010
Ubicación: Lima-Peru , En el alba de la naturaleza
Mensajes: 2.105
Antigüedad: 13 años, 10 meses
Puntos: 267
Respuesta: Broblemas dropdownlist anidados.

Hola Darsk recuerda preguntar por el estado de la conexión para que no hagas el cierre de conexión forzado, podrías hacer lo siguiente :
Código C:
Ver original
  1. protected void cbRegion_SelectedIndexChanged(object sender, EventArgs e)
  2.     {
  3.         if(cboRegion.SelectedIndex != -1)
  4.         {
  5.         string id_region = cbRegion.SelectedValue.ToString();
  6.         SqlCommand cmd = new SqlCommand("select * from ciudad where id_region_fk = '" + id_region + "'", conn);
  7.         SqlDataAdapter da = new SqlDataAdapter(cmd.CommandText, conn);
  8.         DataSet ds = new DataSet();
  9.         da.Fill(ds);
  10.         this.cbCiudad.DataSource = ds;
  11.         this.cbCiudad.DataValueField = "id_ciudad";
  12.         this.cbCiudad.DataTextField = "nombre";
  13.         this.cbCiudad.DataBind();
  14.         if (cbCiudad.Items.Count != 0)
  15.         {
  16.             string id_ciudad = cbCiudad.SelectedValue.ToString();
  17.             cargarComunas(id_ciudad);
  18.             if(conn.Status == ConnectionState.Open){
  19.                 conn.Close();
  20.             }        
  21.         }
  22.         else
  23.         {
  24.             cbCiudad.Items.Clear();
  25.         }
  26.         }
  27.     }

Código C:
Ver original
  1. public void cargarCiudades(string id_region)
  2.     {
  3.         if(cbCiudad.SelectedIndex != -1)
  4.         {        
  5.         SqlCommand cmd = new SqlCommand("select * from ciudad where id_region_fk = '"+id_region+"'",conn);
  6.         SqlDataAdapter da = new SqlDataAdapter(cmd.CommandText, conn);
  7.         DataSet ds = new DataSet();
  8.         da.Fill(ds);
  9.         this.cbCiudad.DataSource = ds;
  10.         this.cbCiudad.DataValueField = "id_ciudad";
  11.         this.cbCiudad.DataTextField = "nombre";
  12.         this.cbCiudad.DataBind();
  13.         if (cbCiudad.Items.Count != 0)
  14.         {
  15.             string id_ciudad = cbCiudad.SelectedValue.ToString();
  16.             cargarComunas(id_ciudad);
  17.             if(conn.Status == ConnectionState.Open){
  18.                 conn.Close();
  19.             }  
  20.              
  21.         }
  22.         else
  23.         {
  24.             cbCiudad.Items.Clear();
  25.         }
  26.         }
  27.     }

Código C:
Ver original
  1. public void cargarComunas(String id_ciudad)
  2.     {
  3.         SqlCommand cmd = new SqlCommand("select * from comunas where id_ciudad_fk ='"+id_ciudad+"'", conn);
  4.         SqlDataAdapter da = new SqlDataAdapter(cmd.CommandText, conn);
  5.         DataSet ds = new DataSet();
  6.         da.Fill(ds);
  7.         this.cbComuna.DataSource = ds;
  8.         this.cbComuna.DataValueField = "id_comuna";
  9.         this.cbComuna.DataTextField = "nombre";
  10.         this.cbComuna.DataBind();
  11.         if(cbComuna.Items.Count !=0)
  12.         {
  13.             string id_comuna = Convert.ToString(cbComuna.SelectedValue);
  14.        
  15.         }
  16.         else
  17.         {
  18.             cbComuna.Items.Clear();
  19.         }
  20.        
  21.     }
Prueba y nos comentas. Saludos!.
__________________
Internet es tener todo el conocimiento global a tu disposición.
Desarrollo de Software - Ejemplos .Net
  #3 (permalink)  
Antiguo 23/11/2012, 18:05
Avatar de Darsk  
Fecha de Ingreso: mayo-2011
Mensajes: 39
Antigüedad: 12 años, 10 meses
Puntos: 0
Respuesta: Broblemas dropdownlist anidados.

Hola, gracias por responder, aplique la linea de codigo que tu menconaste y me arrojjo el siguiente error :


Error 1 'System.Data.SqlClient.SqlConnection' no contiene una definición de 'Status' ni se encontró ningún método de extensión 'Status' que acepte un primer argumento de tipo 'System.Data.SqlClient.SqlConnection' (¿falta una directiva using o una referencia de ensamblado?)

De antemano estoy usando visual studio 2008, saludos.
__________________
El amor mas fiel y duradero es el amor que uno se tiene.
  #4 (permalink)  
Antiguo 24/11/2012, 23:10
Avatar de Darsk  
Fecha de Ingreso: mayo-2011
Mensajes: 39
Antigüedad: 12 años, 10 meses
Puntos: 0
Respuesta: Broblemas dropdownlist anidados.

Por favor!!!!!!!! help me.
__________________
El amor mas fiel y duradero es el amor que uno se tiene.
  #5 (permalink)  
Antiguo 26/11/2012, 07:24
Avatar de Aquaventus  
Fecha de Ingreso: junio-2010
Ubicación: Lima-Peru , En el alba de la naturaleza
Mensajes: 2.105
Antigüedad: 13 años, 10 meses
Puntos: 267
Respuesta: Broblemas dropdownlist anidados.

Hola Darsk, disculpa el error en vez de Status cambiale a State y nos cuentas! Saludos!.
__________________
Internet es tener todo el conocimiento global a tu disposición.
Desarrollo de Software - Ejemplos .Net
  #6 (permalink)  
Antiguo 26/11/2012, 08:43
Avatar de Darsk  
Fecha de Ingreso: mayo-2011
Mensajes: 39
Antigüedad: 12 años, 10 meses
Puntos: 0
Respuesta: Broblemas dropdownlist anidados.

Hola, gracias, me funciono, pero no carga de inmediato, debo seleccionar algun boton para que el evento cargue el dropdownlist, no se cambia solo, si no que espera una actualizacion de la pagina, a que se puede deber esto? saludos.
__________________
El amor mas fiel y duradero es el amor que uno se tiene.
  #7 (permalink)  
Antiguo 26/11/2012, 08:58
Avatar de jhonwilliams  
Fecha de Ingreso: marzo-2004
Ubicación: Copacabana - Colombia
Mensajes: 1.484
Antigüedad: 20 años, 1 mes
Puntos: 76
Respuesta: Broblemas dropdownlist anidados.

Hola

Es una pagina web?

Los DropDownList, tienen la propiedad AutoPostBack en true, si no la tienen, debes ponerla asi, para que al seleccionar un Item, se refresque la pagina y cargue la informacion que necesitas.

Saludos
__________________
Si mi respuesta te ha ayudado, agradezco que me regales unos puntos de Karma XD.

"Una mujer sería encantadora si uno pudiera caer en sus brazos sin caer en sus manos." (Ambrose Bierce)
  #8 (permalink)  
Antiguo 26/11/2012, 09:10
Avatar de Darsk  
Fecha de Ingreso: mayo-2011
Mensajes: 39
Antigüedad: 12 años, 10 meses
Puntos: 0
Respuesta: Broblemas dropdownlist anidados.

Muchas gracias a ambos, con el ultimo aporte de jhon pude lograr mi objetivo, jhon, en otro post mas abajo estaba intentando meter una imagen a una base de datos pero no pude hacer, tienes algun link que me pueda ayudar al respecto? saludos y gracias nuevamente.
__________________
El amor mas fiel y duradero es el amor que uno se tiene.
  #9 (permalink)  
Antiguo 26/11/2012, 09:13
Avatar de Aquaventus  
Fecha de Ingreso: junio-2010
Ubicación: Lima-Peru , En el alba de la naturaleza
Mensajes: 2.105
Antigüedad: 13 años, 10 meses
Puntos: 267
Respuesta: Broblemas dropdownlist anidados.

si puedes investiga sobre los dropdownlist en cascada con jquery para que evites la recarga constante de la página(postback) cada vez que hagas una selección. Saludos!.
__________________
Internet es tener todo el conocimiento global a tu disposición.
Desarrollo de Software - Ejemplos .Net
  #10 (permalink)  
Antiguo 26/11/2012, 09:49
Avatar de jhonwilliams  
Fecha de Ingreso: marzo-2004
Ubicación: Copacabana - Colombia
Mensajes: 1.484
Antigüedad: 20 años, 1 mes
Puntos: 76
Respuesta: Broblemas dropdownlist anidados.

Cita:
Iniciado por Darsk Ver Mensaje
Muchas gracias a ambos, con el ultimo aporte de jhon pude lograr mi objetivo, jhon, en otro post mas abajo estaba intentando meter una imagen a una base de datos pero no pude hacer, tienes algun link que me pueda ayudar al respecto? saludos y gracias nuevamente.
Vos sos el mismo del post, que leia una imagen con un Reader?

Saludos
__________________
Si mi respuesta te ha ayudado, agradezco que me regales unos puntos de Karma XD.

"Una mujer sería encantadora si uno pudiera caer en sus brazos sin caer en sus manos." (Ambrose Bierce)
  #11 (permalink)  
Antiguo 26/11/2012, 09:53
Avatar de Aquaventus  
Fecha de Ingreso: junio-2010
Ubicación: Lima-Peru , En el alba de la naturaleza
Mensajes: 2.105
Antigüedad: 13 años, 10 meses
Puntos: 267
Respuesta: Broblemas dropdownlist anidados.

jhonwilliams, si tienes el link del post, pásamelo por favor.
__________________
Internet es tener todo el conocimiento global a tu disposición.
Desarrollo de Software - Ejemplos .Net
  #12 (permalink)  
Antiguo 26/11/2012, 09:56
Avatar de jhonwilliams  
Fecha de Ingreso: marzo-2004
Ubicación: Copacabana - Colombia
Mensajes: 1.484
Antigüedad: 20 años, 1 mes
Puntos: 76
Respuesta: Broblemas dropdownlist anidados.

Creo que es este:

http://www.forosdelweb.com/f29/guard...p-net-1023034/

Pero veo que no tiene actividad desde mi ultimo comentario. Darsk asi que seria bueno que nos contraras en ese post como te esta llendo con las pruebas o en que va tu codigo.

Saludos
__________________
Si mi respuesta te ha ayudado, agradezco que me regales unos puntos de Karma XD.

"Una mujer sería encantadora si uno pudiera caer en sus brazos sin caer en sus manos." (Ambrose Bierce)

Etiquetas: dropdownlist, sql, tabla, aplicaciones
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 23:19.