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

dropdownlist

Estas en el tema de dropdownlist en el foro de .NET en Foros del Web. tengo esta instruccion en sql para una conexion a una bd de access... pero tengo que vaciar los datos a 3 dropdwonlist, pero uno se ...
  #1 (permalink)  
Antiguo 21/10/2004, 12:41
Avatar de suncreative  
Fecha de Ingreso: octubre-2004
Ubicación: Reynosa, Tamaulipas
Mensajes: 47
Antigüedad: 19 años, 6 meses
Puntos: 0
Pregunta dropdownlist

tengo esta instruccion en sql para una conexion a una bd de access... pero tengo que vaciar los datos a 3 dropdwonlist, pero uno se relaciona con otro por medio de claves... asi que kiero que se restringa la seleccion de la informacion.... pero no me lo carga.... si alguno tiene alguna respuesta me lo pudiera decir... algo asi como cuando seleccionas un pais o region, que te coloke solo los que son de ese pais y no mas.... mi codigo esta asi

strConexion = "PROVIDER=MICROSOFT.JET.OLEDB.4.0;DATA SOURCE=" & Server.MapPath("TABLA.MDB")
objConexion = New OleDbConnection(strConexion)
Dim objSelect as String = "SELECT * FROM PROGRAMAS ORDER BY CV_PROGRAMA;"
objComando = New OleDbDataAdapter(objSelect, strConexion)
objComando.Fill(objDS, "CV_PROGRAMA")
Dim Row
Dim I As Integer = 1
PROGRAMA.Items.Add("Seleccione")
PROGRAMA.Items.Item(0).Value = 0
For Each Row In objDS.Tables("CV_PROGRAMA").Rows
PROGRAMA.Items.Add(Row(1))
PROGRAMA.Items.Item(I).Value = Row(0)
I += 1
Next
objConexion.Close()

// este es para llenar el primer dropdownlist, con respecto a lo que seleccionen se llena el otro... estas son funciones ... tienen el autopostback en true ... aki esta el del segundo lo que pasa es que la variable no entra.... pero haciendo la corrida en access si sale ...

strConexion1 = "PROVIDER=MICROSOFT.JET.OLEDB.4.0;DATA SOURCE=" & Server.MapPath("TABLA.MDB")
objConexion1 = New OleDbConnection(strConexion1)
Dim objSelect1 as Object = "SELECT CV_SUBPROGRAMA FROM SUBPROGRAMAS WHERE CV_PROGRAMA = '@PROGRAMA' GROUP BY CV_SUBPROGRAMA"
objComando1 = New OleDbDataAdapter(objSelect1, strConexion1)
objComando1.Fill(objDS1, "CV_SUBPROGRAMA")
Dim Row1
Dim I1 As Integer = 1
SUBPROGRAMA.ITEMS.CLEAR
SUBPROGRAMA.Items.Add("Seleccione")
SUBPROGRAMA.Items.Item(0).Value = 0
For Each Row In objDS.Tables("CV_SUBPROGRAMA").Rows
SUBPROGRAMA.Items.Add(Row(1))
SUBPROGRAMA.Items.Item(I1).Value = Row(0)
I1 += 1
Next
objConexion.Close()

//... pero al momento de correrlo no llena el dropdownlist con los valores de la tabla.... en access si jala... el tercero es igual... si alguien tiene una respuesta le agreceria me la hiciera conocer... ya que a mi no me queda ...
  #2 (permalink)  
Antiguo 21/10/2004, 13:00
Avatar de RootK
Moderador
 
Fecha de Ingreso: febrero-2002
Ubicación: México D.F
Mensajes: 8.004
Antigüedad: 22 años, 2 meses
Puntos: 50
Y el parámetro..?? en que momento se lo pasas..

Cita:
Dim objSelect1 as Object = "SELECT CV_SUBPROGRAMA FROM SUBPROGRAMAS WHERE CV_PROGRAMA = '@PROGRAMA' GROUP BY CV_SUBPROGRAMA"
objComando1 = New OleDbDataAdapter(objSelect1, strConexion1)
Te faltaría algo como ésto:

Cita:
objCommand1.SelectCommand.Parameters.Add(New OleDb.OleDbParameter("@PROGRAMA", algun_valor))
PD.- Tambien quitale las comillas simple de tu select..

Salu2
__________________
Nadie roba nada ya que en la vida todo se paga . . .

Exentrit - Soluciones SharePoint & Net
  #3 (permalink)  
Antiguo 21/10/2004, 13:12
Avatar de suncreative  
Fecha de Ingreso: octubre-2004
Ubicación: Reynosa, Tamaulipas
Mensajes: 47
Antigüedad: 19 años, 6 meses
Puntos: 0
Pregunta Codigo completo

//aki esta el codigo completo de la pagina y la consulta... si le kito las comillas sencillas no pasa... se keda aki

objComando1.Fill(objDS1, "CV_SUBPROGRAMA")

y marca:

No se han especificado valores para algunos de los parámetros requeridos

asi ke no se ke hacer ya ke no puedo kitarle las comillas por ke si no, no jala, con las comillas sencillas si pasa, pero no carga la info en los siguientes dropdownlist....

<%@ Page Language="VB" Debug="TRUE" %>
<%@ import Namespace="System" %>
<%@ import Namespace="System.Data" %>
<%@ import Namespace="System.Data.OLEDB" %>
<%@ import Namespace="System.Data.OleDb.OleDbException" %>
<script runat="server">

SUB PAGE_LOAD(obj As object, e As eventargs)

If Not (Page.IsPostBack)

RELLENA_DDLPROGRAMA()

else

RELLENA_DDLSUBPROGRAMA()

end if

END SUB

SUB RELLENA_DDLPROGRAMA()

' ---- CON ESTE RELLENAMOS EL DEL PROGRAMA ----

Dim strConexion As String
Dim objConexion As OleDbConnection
Dim objComando As OleDbDataAdapter
Dim objDS As New DataSet
strConexion = "PROVIDER=MICROSOFT.JET.OLEDB.4.0;DATA SOURCE=" & Server.MapPath("TABLA.MDB")
objConexion = New OleDbConnection(strConexion)
Dim objSelect as String = "SELECT * FROM PROGRAMAS ORDER BY CV_PROGRAMA;"
objComando = New OleDbDataAdapter(objSelect, strConexion)
objComando.Fill(objDS, "CV_PROGRAMA")
Dim Row
Dim I As Integer = 1
PROGRAMA.Items.Add("Seleccione")
PROGRAMA.Items.Item(0).Value = 0
For Each Row In objDS.Tables("CV_PROGRAMA").Rows
PROGRAMA.Items.Add(Row(1))
PROGRAMA.Items.Item(I).Value = Row(0)
I += 1
Next
objConexion.Close()


END SUB

SUB RELLENA_DDLSUBPROGRAMA()

' ---- CON ESTE RELLENAMOS EL DEL SUBPROGRAMA ----

Dim strConexion1 As String
Dim objConexion1 As OleDbConnection
Dim objComando1 As OleDbDataAdapter
Dim objDS1 As New DataSet
strConexion1 = "PROVIDER=MICROSOFT.JET.OLEDB.4.0;DATA SOURCE=" & Server.MapPath("TABLA.MDB")
objConexion1 = New OleDbConnection(strConexion1)
Dim objSelect1 as Object = "SELECT CV_SUBPROGRAMA FROM SUBPROGRAMAS WHERE CV_PROGRAMA = '@PROGRAMA' GROUP BY CV_SUBPROGRAMA"
objComando1 = New OleDbDataAdapter(objSelect1, strConexion1)
objComando1.Fill(objDS1, "CV_SUBPROGRAMA")
Dim Row1
Dim I1 As Integer = 1
SUBPROGRAMA.ITEMS.CLEAR
SUBPROGRAMA.Items.Add("Seleccione")
SUBPROGRAMA.Items.Item(0).Value = 0
For Each Row1 In objDS1.Tables("CV_SUBPROGRAMA").Rows
SUBPROGRAMA.Items.Add(Row1(1))
SUBPROGRAMA.Items.Item(I1).Value = Row1(0)
I1 += 1

Next
objConexion1.Close()

End Sub
</script>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
</head>
<body>
<form runat="server">
Programa:
<asp:DropDownList id="PROGRAMA" runat="server" Font-Names="Verdana" Font-Size="10pt" AutoPostBack="True"></asp:DropDownList>
&nbsp;&nbsp;&nbsp;&nbsp; Subprograma:
<asp:DropDownList id="SUBPROGRAMA" runat="server" Font-Names="Verdana" Font-Size="10pt" AutoPostBack="True">
<asp:ListItem Text="Seleccione"></asp:ListItem>
</asp:DropDownList>
&nbsp;&nbsp;&nbsp;&nbsp; Subsubprograma:
<asp:DropDownList id="SUBSUBPROGRAMA" runat="server" Font-Names="Verdana" Font-Size="10pt" AutoPostBack="True">
<asp:ListItem Text="Seleccione"></asp:ListItem>
</asp:DropDownList>
</form>
</body>
</html>

o komo pasar la seleccion del dropdownlist como variable para que sirva al momento de pasar al segundo dropdownlist ....

Última edición por suncreative; 21/10/2004 a las 13:14
  #4 (permalink)  
Antiguo 22/10/2004, 07:45
Avatar de suncreative  
Fecha de Ingreso: octubre-2004
Ubicación: Reynosa, Tamaulipas
Mensajes: 47
Antigüedad: 19 años, 6 meses
Puntos: 0
Por Favor

Alguien que sepa como se le hace para poder llenar 3 dropdownlist pero restringiendo los datos a la seleccion del 1o para el llenado del 2o y restringir los datos del 2o para llenar el 3o... por favor...
  #5 (permalink)  
Antiguo 26/11/2004, 12:14
Avatar de suncreative  
Fecha de Ingreso: octubre-2004
Ubicación: Reynosa, Tamaulipas
Mensajes: 47
Antigüedad: 19 años, 6 meses
Puntos: 0
Aki respuesta

Aki pongo el codigo para el llenado (despues de tanto pesar)

<%@ Page Language="VB" Debug="True" %>
<%@ import Namespace="System" %>
<%@ import Namespace="System.Data" %>
<%@ import Namespace="System.Data.OLEDB" %>
<%@ import Namespace="System.Data.OleDb.OleDbException" %>
<script runat="server">

SUB PAGE_LOAD(obj As object, e As eventargs)

If Not (Page.IsPostBack)

RELLENA_DDLPROGRAMA()

else

descripcion()

end if

END SUB

SUB RELLENA_DDLPROGRAMA()

' ---- CON ESTE RELLENAMOS EL DEL PROGRAMA ----

Dim strConexion As String
Dim objConexion As OleDbConnection
Dim objComando As OleDbDataAdapter
Dim objDS As New DataSet
strConexion = "PROVIDER=MICROSOFT.JET.OLEDB.4.0;DATA SOURCE=" & Server.MapPath("db/tabla.MDB")
objConexion = New OleDbConnection(strConexion)
Dim objSelect as String = "SELECT * FROM PROGRAMAS;"
objComando = New OleDbDataAdapter(objSelect, strConexion)
objComando.Fill(objDS, "PROGRAMAS")
Dim Row
Dim I As Integer = 1
drop1.Items.Add("Seleccione")
drop1.Items.Item(0).Value = 0
For Each Row In objDS.Tables("PROGRAMAS").Rows
drop1.Items.Add(Row(0))
drop1.Items.Item(I).Value = Row(0)
I += 1
Next
objConexion.Close()

END SUB

SUB RELLENA_DDLSUBPROGRAMA(sender As System.Object, e As System.EventArgs)

' ---- CON ESTE RELLENAMOS EL DEL SUBPROGRAMA ----

call DESCRIPCION()

Dim strConexion2 As String
Dim objConexion2 As OleDbConnection
Dim objComando2 As OleDbDataAdapter
Dim objDS2 As New DataSet
strConexion2 = "PROVIDER=MICROSOFT.JET.OLEDB.4.0;DATA SOURCE=" & Server.MapPath("db/tabla.MDB")
objConexion2 = New OleDbConnection(strConexion2)
Dim objSelect2 as String = "SELECT CV_SUBPROGRAMA FROM SUBPROGRAMAS WHERE (CV_PROGRAMA = '" & drop1.SelectedItem.Value &"') GROUP BY CV_SUBPROGRAMA ;"
objComando2 = New OleDbDataAdapter(objSelect2, strConexion2)
objComando2.Fill(objDS2, "SUBPROGRAMAS")
Dim Row2
Dim I2 As Integer = 1
drop2.Items.Clear
drop2.Items.Add("Seleccione")
drop2.Items.Item(0).Value = 0
For Each Row2 In objDS2.Tables("SUBPROGRAMAS").Rows
drop2.Items.Add(Row2("CV_SUBPROGRAMA"))
drop2.Items.Item(I2).Value = Row2("CV_SUBPROGRAMA")
I2 += 1
Next
objConexion2.Close()

END SUB

SUB RELLENA_DDLSUBSUBPROGRAMA(sender As System.Object, e As System.EventArgs)

' ---- CON ESTE RELLENAMOS EL DEL SUBSUBPROGRAMA ----

call DESCRIPCION()

Dim objDS3 As New DataSet
dim strConexion3 as string = "PROVIDER=MICROSOFT.JET.OLEDB.4.0;DATA SOURCE=" & Server.MapPath("db/tabla.MDB")
dim objConexion3 = New OleDbConnection(strConexion3)
Dim objSelect3 as String = "SELECT CV_SUBSUBPROGRAMA FROM SUBSUBPROGRAMAS WHERE ((CV_PROGRAMA = '" & drop1.SelectedItem.Value & "') and (CV_SUBPROGRAMA = '" & drop2.SelectedItem.Value & "')) GROUP BY CV_SUBSUBPROGRAMA ;"
dim objComando3 = New OleDbDataAdapter(objSelect3, strConexion3)
objComando3.Fill(objDS3, "SUBSUBPROGRAMAS")
Dim Row3
Dim I3 As Integer = 1
drop3.Items.Clear
drop3.Items.Add("Seleccione")
drop3.Items.Item(0).Value = 0
For Each Row3 In objDS3.Tables("SUBSUBPROGRAMAS").Rows
drop3.Items.Add(Row3("CV_SUBSUBPROGRAMA"))
drop3.Items.Item(I3).Value = Row3("CV_SUBSUBPROGRAMA")
I3 += 1
Next
objConexion3.Close()

END SUB

SUB DESCRIPCION()

Dim DS1 As New DataSet
dim DS2 as new DataSet
dim DS3 as new DataSet
dim strConexion4 as string = "PROVIDER=MICROSOFT.JET.OLEDB.4.0;DATA SOURCE=" & Server.MapPath("db/tabla.MDB")
dim objConexion4 = New OleDbConnection(strConexion4)

' Esto es para cuando cambia el primer dropdownlist

Dim Desc1 as String = "SELECT DESCRIPCION FROM PROGRAMAS WHERE (CV_PROGRAMA = '" & drop1.SelectedItem.Value & "') GROUP BY DESCRIPCION; "
dim Comando1 = New OleDbDataAdapter(Desc1, strConexion4)
Comando1.Fill(DS1, "PROGRAMAS")
Dim DesPro
Dim I4 As Integer = 1
For Each DesPro In DS1.Tables("PROGRAMAS").Rows
txtMsg.text = " "
txtMsg.text = DesPro("DESCRIPCION")
I4 += 1
Next

' Esto es para cuando cambia el segundo dropdownlist

if not(drop2.SelectedItem.value = "Seleccione") then

dim Desc2 as string = "select DESCRIPCION from SUBPROGRAMAS Where ((CV_PROGRAMA = '" & drop1.SelectedItem.Value & "') and (CV_SUBPROGRAMA = '" & drop2.SelectedItem.Value & "')) group by DESCRIPCION; "
dim comando2 = new oledbdataadapter(Desc2, strConexion4)
comando2.fill(DS2, "SUBPROGRAMAS")
Dim despro2
dim i5 as integer = 1
for each despro2 in DS2.Tables("SUBPROGRAMAS").Rows
txtMsg.text += " "
txtMsg.Text += despro2("DESCRIPCION")
i5 += 1
next

end if

' Esto es para el tercer dropdownlist

if not(drop3.SelectedItem.value = "Seleccione") then

dim Desc3 as string = "select DESCRIPCION from SUBSUBPROGRAMAS Where ((CV_PROGRAMA = '" & drop1.SelectedItem.Value & "') and (CV_SUBPROGRAMA = '" & drop2.SelectedItem.Value & "') and (CV_SUBSUBPROGRAMA = '" & drop3.selecteditem.value & "')) group by DESCRIPCION; "
dim comando3 = new oledbdataadapter(Desc3, strConexion4)
comando3.fill(DS3, "SUBSUBPROGRAMAS")
Dim despro3
dim i6 as integer = 1
for each despro3 in DS3.Tables("SUBSUBPROGRAMAS").Rows
txtMsg.text += " "
txtMsg.Text += despro3("DESCRIPCION")
i6 += 1
next

end if

objConexion4.Close()

END SUB

</script>
<html>
<head>
</head>
<body>
<form runat="server">
<p>
<asp:DropDownList id="Drop1" runat="server" AutoPostBack="True" OnSelectedIndexChanged="RELLENA_DDLSUBPROGRAMA"></asp:DropDownList>
</p>
<p>
<asp:DropDownList id="drop2" runat="server" AutoPostBack="true" OnSelectedIndexChanged="RELLENA_DDLSUBSUBPROGRAMA" >
<asp:ListItem>Seleccione</asp:ListItem>
</asp:DropDownList>
</p>
<p>
<asp:DropDownList ID="drop3" runat="server" AutoPostBack="true">
<asp:ListItem>Seleccione</asp:ListItem>
</asp:DropDownList>

<asp:TextBox BorderWidth="1" Columns="100" ID="txtMsg" MaxLength="100" ReadOnly="true" runat="server" TextMode="SingleLine"></asp:TextBox>
</p>
</form>
</body>
</html>

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 20:23.