Retroceder   Foros del Web > Programación para sitios web > .NET

Respuesta
 
Herramientas Desplegado
Antiguo 23-feb-2005, 12:39   #1 (permalink)
Sayra ha deshabilitado el karma
 
Avatar de Sayra
 
Fecha de Ingreso: diciembre-2004
Mensajes: 365
Busqueda por parametros en tablas

Hola tengo un problema y no se como resolverlo, la cosa es que estoy haciendo un buscador parametrizados. Tengo 5 item proporcionados por un checkboxlist que muestra los servicios a seleccionar y tres dropdownlist dependientes entre si y enlazados a cada cual a una Tabla en una base de datos.

Hasta ahora me permite realizar busquedas en la tabla de acuerdo a lo que se seleccione en los drop, pero debo hacer que tome en cuenta el servicio seleccionado en el checkboxlist y no se como hacer eso.
Sayra está desconectado   Responder Citando
Antiguo 24-feb-2005, 06:13   #2 (permalink)
Sayra ha deshabilitado el karma
 
Avatar de Sayra
 
Fecha de Ingreso: diciembre-2004
Mensajes: 365
Asi es como hago la busqueda en las tablas, pero solo toma en cuenta lo que se seleccione en el drop, tengo que hacer que busque en funcion del servicio que esta determinado por listitem en el checkboxlist

gracias de antemano


Sub Button1_Click(sender As Object, e As EventArgs)

Dim s As String = "Elementos seleccionados:<br>"
Dim i As Int32

For i = 0 to Check1.Items.Count-1

If not Check1.Items(i).Selected Then
Iblmessage.Text = "Es necesario que seleccione un servicio"

Else If Check1.Items(i).Selected Then

Dim ds As DataSet
Dim strSql As String
Dim MyConnection As SqlConnection
Dim MyCommand As SqlDataAdapter

strSql = " SELECT Agencia.Identificador as Agencia, Agencia.Direccion as Direccion, Agencia.Telefono as Telefono, Estado.Nombre_Estado as Estado, Ciudad.Nombre_Ciudad as Ciudad, Ubicacion.Descripcion as Ubicación From Agencia, Estado, Ciudad, Ubicacion "
strSql += " WHERE Agencia.EstadoID=Estado.EstadoID"
strSql += " AND Agencia.CiudadID=Ciudad.CiudadID"
strSql += " AND Agencia.UbicacionID=Ubicacion.UbicacionID"
strSql += " AND Agencia.EstadoID=" &DropDownList1.SelectedItem.Value
strSql += " AND Agencia.CiudadID=" &DropDownList2.SelectedItem.Value
strSql += " AND Agencia.Ubicac

ionID=" &DropDownList3.SelectedItem.Value


MyConnection = New SqlConnection("SERVER=MDS01; DATABASE=be; INTEGRATED SECURITY=false;PASSWORD=sa;USER=sa")
MyCommand = New SqlDataAdapter(strSql, MyConnection)

ds = new DataSet()
MyCommand.Fill(ds, "Agencia")

MyDataGrid.DataSource=ds.Tables("Agencia").Default View
MyDataGrid.DataBind()

End If
Next

End Sub
Sayra está desconectado   Responder Citando
Antiguo 24-feb-2005, 06:27   #3 (permalink)
neivan está en el buen camino
 
Avatar de neivan
 
Fecha de Ingreso: febrero-2005
Mensajes: 535
Y como kieres q te influya el checkboxlist en tu busqueda ya q tiene seleccion multiple,y podria elegir varios ala vez.....
neivan está desconectado   Responder Citando
Antiguo 24-feb-2005, 07:32   #4 (permalink)
Sayra ha deshabilitado el karma
 
Avatar de Sayra
 
Fecha de Ingreso: diciembre-2004
Mensajes: 365
eso es lo mejor. El usuario puede marcar todas las opciones de servicios disponibles, se espera que cuando seleccione el (los) servicio (s), los resultados de la busqueda se desplieguen por coincidencias, respetando la seleccion geografica seleccionada, es decir si selecciona servicio 1, servicio 2, servicio 3 y marca algun estado, ciudad y ubicacion de los drop, los resultados de la busqueda seran aquellas agencias que se encuentre en estado x xiudad y y ubicacion z que presten los servicios 1, 2 ,3

Me comprendes o tadavia enredo?
Sayra está desconectado   Responder Citando
Antiguo 24-feb-2005, 07:43   #5 (permalink)
neivan está en el buen camino
 
Avatar de neivan
 
Fecha de Ingreso: febrero-2005
Mensajes: 535
dependera de si hay un boton de busqueda o cada vez q haga un cambio en el checkboxlist automaticamente haga la busqueda

Suponiendo el boton de de busqueda

Asi recorreras el checkboxlist:
dim j as integer
For j = 0 To checkboxlist.Items.Count - 1
If checkboxlist.Items(j).Selected Then
' Entra si esta seleccionado
strSql +=
end if
Next

en strSql añadiras los servicios ,dependera como esten organizados los campos de los servicios en tu base de datos
neivan está desconectado   Responder Citando
Antiguo 24-feb-2005, 11:02   #6 (permalink)
Sayra ha deshabilitado el karma
 
Avatar de Sayra
 
Fecha de Ingreso: diciembre-2004
Mensajes: 365
si, la aplicacion tendra un boton de busqueda, una vez que el usuario seleccione los servicios y los drop debe pulsar el boton buscar para activar la busqueda

En cuanto a las tablas, en el momento que las cree no me quedaba muy claro si crear una tabla para cada servicio, asi que hize una tabla en donde puse el campo el codigo, agencias, los servicios, direccion, telefono, estado, ciudad y ubicacion.

Pero realmente no se que sea mas conveniente para este tipo de buscador.
Sayra está desconectado   Responder Citando
Antiguo 25-feb-2005, 01:50   #7 (permalink)
neivan está en el buen camino
 
Avatar de neivan
 
Fecha de Ingreso: febrero-2005
Mensajes: 535
dependera de del servicio, por ejemplo si tinee mas datos a guardar se utilizaria fijo otra tabla.

Puedes tener si son por ejemplo 5 servicios 5 campos booleanos,de esta manera te seria muy sencilla hacer la consulta utilizando lo que te he puesto en el anterior mensaje

Yo lo haria con otra tabla servicios ,para la consulta agencia cuyo codigo tal...
La consulta seria mas larga por q deberias comprobar por cada servicui q la agencia este en la tbla servicios con ese servicio

"where agenciaid in (select agenciaid from servicios where servicio= "& servivio.selected " & ") and agenciaid in (....) ...."

Dependera de los servicios q esten chequeados y esto lo haras con

dim j as integer
For j = 0 To checkboxlist.Items.Count - 1
If checkboxlist.Items(j).Selected Then
' Entra si esta seleccionado
strSql +="and agenciaid in(select agenciaid from servicios where servicio="& _ checkboxlist.Items(j).text" & ")
end if
Next

Haber si con esto puedes solucionar tus problemas
neivan está desconectado   Responder Citando
Antiguo 25-feb-2005, 11:49   #8 (permalink)
Sayra ha deshabilitado el karma
 
Avatar de Sayra
 
Fecha de Ingreso: diciembre-2004
Mensajes: 365
Hola Neivan, te pongo al corriente hable con mi profesor y me dijo que para efecto de la catedra el queria las agencias y los servicios en un tabla y los campos de estado, ciudad y ubicacion, direccion, telefono en fin creo que te lo mensione antes, la cosa es que bueno estructure la busqueda en un boton asi


Sub Button1_Click(sender As Object, e As EventArgs)

Dim s As String = "Elementos seleccionados:<br>"
Dim i As Int32

For i = 0 to Check1.Items.Count-1

If not Check1.Items(i).Selected Then
Iblmessage.Text = "Es necesario que seleccione un servicio"

Else If Check1.Items(0).Selected Then

Dim ds As DataSet
Dim strSql As String
Dim MyConnection As SqlConnection
Dim MyCommand As SqlDataAdapter

strSql = " SELECT Agencia.Identificador as Agencia, Agencia.Direccion as Direccion, Agencia.Telefono as Telefono, Agencia.Estacionamiento as Agencia_Estacionamiento, Agencia.Cajero_Automatico as Cajero_Automatico, Agencia.Autobanco as Autobanco, Agencia.Taquilla_Externa as Taquilla_Externa, Estado.Nombre_Estado as Estado, Ciudad.Nombre_Ciudad as Ciudad, Ubicacion.Descripcion as Ubicación From Agencia, Estado, Ciudad, Ubicacion "
strSql += " WHERE Agencia.EstadoID=Estado.EstadoID"
strSql += " AND Agencia.CiudadID=Ciudad.CiudadID"
strSql += " AND Agencia.UbicacionID=Ubicacion.UbicacionID"
strSql += " AND Agencia.EstadoID=" &DropDownList1.SelectedItem.Value
strSql += " AND Agencia.CiudadID=" &DropDownList2.SelectedItem.Value
strSql += " AND Agencia.UbicacionID=" &DropDownList3.SelectedItem.Value



MyConnection = New SqlConnection("SERVER=MDS01; DATABASE=be; INTEGRATED SECURITY=false;PASSWORD=sa;USER=sa")
MyCommand = New SqlDataAdapter(strSql, MyConnection)

ds = new DataSet()
MyCommand.Fill(ds, "Agencia")

MyDataGrid.DataSource=ds.Tables("Agencia").Default View
MyDataGrid.DataBind()

Else If Check1.Items(1).Selected Then

Dim ds As DataSet
Dim strSql As String
Dim MyConnection As SqlConnection
Dim MyCommand As SqlDataAdapter

strSql = " SELECT Agencia.Identificador as Agencia, Agencia.Direccion as Direccion, Agencia.Telefono as Telefono, Agencia.Cajero_Automatico as Cajero_Automatico, Estado.Nombre_Estado as Estado, Ciudad.Nombre_Ciudad as Ciudad, Ubicacion.Descripcion as Ubicación From Agencia, Estado, Ciudad, Ubicacion "
strSql += " WHERE Agencia.EstadoID=Estado.EstadoID"
strSql += " AND Agencia.CiudadID=Ciudad.CiudadID"
strSql += " AND Agencia.UbicacionID=Ubicacion.UbicacionID"
strSql += " AND Agencia.EstadoID=" &DropDownList1.SelectedItem.Value
strSql += " AND Agencia.CiudadID=" &DropDownList2.SelectedItem.Value
strSql += " AND Agencia.UbicacionID=" &DropDownList3.SelectedItem.Value



MyConnection = New SqlConnection("SERVER=MDS01; DATABASE=be; INTEGRATED SECURITY=false;PASSWORD=sa;USER=sa")
MyCommand = New SqlDataAdapter(strSql, MyConnection)

ds = new DataSet()
MyCommand.Fill(ds, "Agencia")

MyDataGrid.DataSource=ds.Tables("Agencia").Default View
MyDataGrid.DataBind()

Else If Check1.Items(2).Selected Then

Dim ds As DataSet
Dim strSql As String
Dim MyConnection As SqlConnection
Dim MyCommand As SqlDataAdapter

strSql = " SELECT Agencia.Identificador as Agencia, Agencia.Direccion as Direccion, Agencia.Telefono as Telefono, Agencia.Estacionamiento as Agencia_Estacionamiento, Estado.Nombre_Estado as Estado, Ciudad.Nombre_Ciudad as Ciudad, Ubicacion.Descripcion as Ubicación From Agencia, Estado, Ciudad, Ubicacion "
strSql += " WHERE Agencia.EstadoID=Estado.EstadoID"
strSql += " AND Agencia.CiudadID=Ciudad.CiudadID"
strSql += " AND Agencia.UbicacionID=Ubicacion.UbicacionID"
strSql += " AND Agencia.EstadoID=" &DropDownList1.SelectedItem.Value
strSql += " AND Agencia.CiudadID=" &DropDownList2.SelectedItem.Value
strSql += " AND Agencia.UbicacionID=" &DropDownList3.SelectedItem.Value



MyConnection = New SqlConnection("SERVER=MDS01; DATABASE=be; INTEGRATED SECURITY=false;PASSWORD=sa;USER=sa")
MyCommand = New SqlDataAdapter(strSql, MyConnection)

ds = new DataSet()
MyCommand.Fill(ds, "Agencia")

MyDataGrid.DataSource=ds.Tables("Agencia").Default View
MyDataGrid.DataBind()

Else If Check1.Items(3).Selected Then

Dim ds As DataSet
Dim strSql As String
Dim MyConnection As SqlConnection
Dim MyCommand As SqlDataAdapter

strSql = " SELECT Agencia.Identificador as Agencia, Agencia.Direccion as Direccion, Agencia.Telefono as Telefono, Agencia.Autobanco as Autobanco, Estado.Nombre_Estado as Estado, Ciudad.Nombre_Ciudad as Ciudad, Ubicacion.Descripcion as Ubicación From Agencia, Estado, Ciudad, Ubicacion "
strSql += " WHERE Agencia.EstadoID=Estado.EstadoID"
strSql += " AND Agencia.CiudadID=Ciudad.CiudadID"
strSql += " AND Agencia.UbicacionID=Ubicacion.UbicacionID"
strSql += " AND Agencia.EstadoID=" &DropDownList1.SelectedItem.Value
strSql += " AND Agencia.CiudadID=" &DropDownList2.SelectedItem.Value
strSql += " AND Agencia.UbicacionID=" &DropDownList3.SelectedItem.Value



MyConnection = New SqlConnection("SERVER=MDS01; DATABASE=be; INTEGRATED SECURITY=false;PASSWORD=sa;USER=sa")
MyCommand = New SqlDataAdapter(strSql, MyConnection)

ds = new DataSet()
MyCommand.Fill(ds, "Agencia")

MyDataGrid.DataSource=ds.Tables("Agencia").Default View
MyDataGrid.DataBind()

Else If Check1.Items(4).Selected Then

Dim ds As DataSet
Dim strSql As String
Dim MyConnection As SqlConnection
Dim MyCommand As SqlDataAdapter

strSql = " SELECT Agencia.Identificador as Agencia, Agencia.Direccion as Direccion, Agencia.Telefono as Telefono, Agencia.Taquilla_Externa as Taquilla_Externa , Estado.Nombre_Estado as Estado, Ciudad.Nombre_Ciudad as Ciudad, Ubicacion.Descripcion as Ubicación From Agencia, Estado, Ciudad, Ubicacion "
strSql += " WHERE Agencia.EstadoID=Estado.EstadoID"
strSql += " AND Agencia.CiudadID=Ciudad.CiudadID"
strSql += " AND Agencia.UbicacionID=Ubicacion.UbicacionID"
strSql += " AND Agencia.EstadoID=" &DropDownList1.SelectedItem.Value
strSql += " AND Agencia.CiudadID=" &DropDownList2.SelectedItem.Value
strSql += " AND Agencia.UbicacionID=" &DropDownList3.SelectedItem.Value



MyConnection = New SqlConnection("SERVER=MDS01; DATABASE=be; INTEGRATED SECURITY=false;PASSWORD=sa;USER=sa")
MyCommand = New SqlDataAdapter(strSql, MyConnection)

ds = new DataSet()
MyCommand.Fill(ds, "Agencia")

MyDataGrid.DataSource=ds.Tables("Agencia").Default View
MyDataGrid.DataBind()
End If
Next

End Sub


Y asi fino si selecciono individualmente los servicios , me muestra las agencia en esa ubicacion gegrafica que dispones de ese servicio, pero cuando intento buscar 2 o tres o todos los servicios a las vez solo me muestra el primer servcio que seleccione.

que puedo hacer

y gracias por todo
Sayra está desconectado   Responder Citando
Antiguo 25-feb-2005, 13:50   #9 (permalink)
Moderador
RootK llegará a ser famoso muy prontoRootK llegará a ser famoso muy pronto
 
Avatar de RootK
 
Fecha de Ingreso: noviembre-2002
Ubicación: México D.F
Mensajes: 7.552
Enviar un mensaje por MSN a RootK
Hola Sayra, por lo que veo estas usando demasiado código que te hace lo mismo... creo que para empezar tu code podría quedar así:

Cita:
Sub Button1_Click(sender As Object, e As EventArgs)
Dim s As String = "Elementos seleccionados:<br>"
Dim i As Int32
'bandera para verificar si al menos selecciono un valor
Dim bln As Boolean = False

For i = 0 To check1.Items.Count - 1
If check1.Items(i).Selected Then
Iblmessage.Text = "Es necesario que seleccione al menos un servicio"
bln = True
Exit For
End If
bln = False
Next i
'selecciono al menos un servicio
If bln Then
For i = 0 To check1.Items.Count - 1
If check1.Items(i).Selected Then
GetData()
End If
Next
End If
End Sub

Private Sub GetData()
Dim ds As DataSet
Dim strSql As String
Dim MyConnection As SqlConnection
Dim MyCommand As SqlDataAdapter

strSql = " SELECT Agencia.Identificador as Agencia, Agencia.Direccion as Direccion, Agencia.Telefono as Telefono, Agencia.Estacionamiento as Agencia_Estacionamiento, Agencia.Cajero_Automatico as Cajero_Automatico, Agencia.Autobanco as Autobanco, Agencia.Taquilla_Externa as Taquilla_Externa, Estado.Nombre_Estado as Estado, Ciudad.Nombre_Ciudad as Ciudad, Ubicacion.Descripcion as Ubicación From Agencia, Estado, Ciudad, Ubicacion "
strSql += " WHERE Agencia.EstadoID=Estado.EstadoID"
strSql += " AND Agencia.CiudadID=Ciudad.CiudadID"
strSql += " AND Agencia.UbicacionID=Ubicacion.UbicacionID"
strSql += " AND Agencia.EstadoID=" & DropDownList1.SelectedItem.Value
strSql += " AND Agencia.CiudadID=" & DropDownList2.SelectedItem.Value
strSql += " AND Agencia.UbicacionID=" & DropDownList3.SelectedItem.Value



MyConnection = New SqlConnection("SERVER=MDS01; DATABASE=be; INTEGRATED SECURITY=false;PASSWORD=sa;USER=sa")
MyCommand = New SqlDataAdapter(strSql, MyConnection)

ds = New DataSet
MyCommand.Fill(ds, "Agencia")

myDataGrid.DataSource = ds.Tables("Agencia").DefaultView
myDataGrid.DataBind()
End Sub

Ahora, otra cosa que tienes que verificar es como estas validando tus servicios selecionado porque va a pasar por todos los items de tu checkbox pero no estas haciendo nada para pasarle ese argumento.

Checa bien tu code..

Cualquier cosa por aqui andamos..
__________________
Nadie roba nada ya que en la vida todo se paga . . .
RootK está desconectado   Responder Citando
Antiguo 26-feb-2005, 09:02   #10 (permalink)
neivan está en el buen camino
 
Avatar de neivan
 
Fecha de Ingreso: febrero-2005
Mensajes: 535
lo siento pero no termino de ver donde seleccionas o como el servivi
ejemplo:

Else If Check1.Items(1).Selected Then

Dim ds As DataSet
Dim strSql As String
Dim MyConnection As SqlConnection
Dim MyCommand As SqlDataAdapter

strSql = " SELECT Agencia.Identificador as Agencia, Agencia.Direccion as Direccion, Agencia.Telefono as Telefono, Agencia.Cajero_Automatico as Cajero_Automatico, Estado.Nombre_Estado as Estado, Ciudad.Nombre_Ciudad as Ciudad, Ubicacion.Descripcion as Ubicación From Agencia, Estado, Ciudad, Ubicacion "
strSql += " WHERE Agencia.EstadoID=Estado.EstadoID"
strSql += " AND Agencia.CiudadID=Ciudad.CiudadID"
strSql += " AND Agencia.UbicacionID=Ubicacion.UbicacionID"
strSql += " AND Agencia.EstadoID=" &DropDownList1.SelectedItem.Value
strSql += " AND Agencia.CiudadID=" &DropDownList2.SelectedItem.Value
strSql += " AND Agencia.UbicacionID=" &DropDownList3.SelectedItem.Value

En la consulta no veo diferrencias con si chequa el servicio 1 o el 2 o el 3
Estoy con rootk en q repites mucho codigo.

Si quieres el codigo de como lo haria yo muestrame como esta almacenado servicio dentro de agencia
Es decir una agencia esta destinada a un unico servicio o puede tener varios.
Otra cosa si en tu codigo pones que si esta chekeado el servicio1 haga una consulta y la meta en el datagrid,y si entra aki ya no comprueba si esta el 2 el 3 el 4.... por q pones
if If Check1.Items(0).Selected Then
Else If Check1.Items(1).Selected Then
'Solo entrara aki si no entra en la anterior....
neivan está desconectado   Responder Citando
Antiguo 28-feb-2005, 07:52   #11 (permalink)
Sayra ha deshabilitado el karma
 
Avatar de Sayra
 
Fecha de Ingreso: diciembre-2004
Mensajes: 365
Bueno lo que me percate es que cuando digo
Check1.Items(0).Selected = se refiere a la seleccion del servicio 1 (Agencias)
Check1.Items(1).Selected = se refiere a la seleccion del servicio 2 (Cajeros Automaticos)
Check1.Items(2).Selected = se refiere a la seleccion del servicio 3 (Agencia con Estacionamiento)
Check1.Items(3).Selected = se refiere a la seleccion del servicio 4 (Autobanco)
Check1.Items(4).Selected = se refiere a la seleccion del servicio 5 (Taquilla Externa)

De esa forma es que veo yo que identifica el checkboxlist y muestra las agencias que por ubicacion regional disponen de ese servicio.

Una agencia pueden tener varios servicios, pero la idea es que muestre solamente como resultados de la busqueda las agencias que por ubicacion geografica tenga los servicos que seleccionados del checkboxlist

En la tabla sobre la cual realizo la busqueda tiene las agencias, los servicios, direción estado y ubicacion , y otros campos tales como telefono fax, direccion etc.

Claro de la manera que lo estoy haciendo solo reconoce un servicio seleccionado y la idea es que pueda reconocer mas de uno y en funcion de eso realizar la busqueda.
Sayra está desconectado   Responder Citando
Antiguo 28-feb-2005, 11:01   #12 (permalink)
neivan está en el buen camino
 
Avatar de neivan
 
Fecha de Ingreso: febrero-2005
Mensajes: 535
Dim ds As DataSet
Dim strSql As String
Dim MyConnection As SqlConnection
Dim MyCommand As SqlDataAdapter

strSql = " SELECT Agencia.Identificador as Agencia, Agencia.Direccion as Direccion, Agencia.Telefono as Telefono, Agencia.Cajero_Automatico as Cajero_Automatico, Estado.Nombre_Estado as Estado, Ciudad.Nombre_Ciudad as Ciudad, Ubicacion.Descripcion as Ubicación From Agencia, Estado, Ciudad, Ubicacion "
strSql += " WHERE Agencia.EstadoID=Estado.EstadoID"
strSql += " AND Agencia.CiudadID=Ciudad.CiudadID"
strSql += " AND Agencia.UbicacionID=Ubicacion.UbicacionID"
strSql += " AND Agencia.EstadoID=" &DropDownList1.SelectedItem.Value
strSql += " AND Agencia.CiudadID=" &DropDownList2.SelectedItem.Value
strSql += " AND Agencia.UbicacionID=" &DropDownList3.SelectedItem.Value

For j = 0 To checkboxlist.Items.Count - 1
If checkboxlist.Items(j).Selected Then
' Entra si esta seleccionado
strSql +=""
end if
Next

el tema esta en que en este ultimo strSql hay que meter la parte correspondiente a cada servicio
Te pedi que me pusieras como estaba organizada tu bd pa saber si por ejemplo una agencia tendra tantos registros como servicios por ejemplo o pa saber como lo tienes organizado,si es asi
For j = 0 To checkboxlist.Items.Count - 1
If checkboxlist.Items(j).Selected Then
strSql +="And Agencia.Identificador in (select Identificador from"& _ "agencia where servicio =" & checkboxlist.Items(j).text)"
end if
Next

Asi cada cod.identificador es decir cada agencia tiene q tener todos los servicios q estan seleciondor
.....
Haber si con esto ya lo solucionamos
neivan está desconectado   Responder Citando
Antiguo 28-feb-2005, 13:25   #13 (permalink)
Sayra ha deshabilitado el karma
 
Avatar de Sayra
 
Fecha de Ingreso: diciembre-2004
Mensajes: 365
bueno la estructura de la base en la vista de diseño es asi

3 CodigoID int 4 0
0 Identificador char 30 1
0 Direccion char 50 1
0 Codigo_Area numeric 9 1
0 Telefono char 50 1
0 Fax char 16 1
0 Horario datetime 8 1
0 EstadoID int 4 1
0 CiudadID int 4 1
0 UbicacionID int 4 0
0 Estacionamiento char 10 1
0 Cajero_Automatico char 10 1
0 Autobanco char 10 1
0 Taquilla_Externa char 10 1
Sayra está desconectado   Responder Citando
Antiguo 28-feb-2005, 13:31   #14 (permalink)
Sayra ha deshabilitado el karma
 
Avatar de Sayra
 
Fecha de Ingreso: diciembre-2004
Mensajes: 365
ups se me olvido esa tabla esta relacionada con otras tres llamada estados, ciudad y ubicacion.
Sayra está desconectado   Responder Citando
Antiguo 28-feb-2005, 16:01   #15 (permalink)
neivan está en el buen camino
 
Avatar de neivan
 
Fecha de Ingreso: febrero-2005
Mensajes: 535
ya veo,tienes un campo para cada servicio

Entonces la solucion sera diferente

Consejo,si no me equivoco,cada linea q devolvera esa tabla sera una agencia.
Los campos servicios si simplemente nos interesa saber si estan activos en vez de char los pondria boolean.

Si son boolean seria simplemente por ejemplo en el check1 tener en cada linea el text que queramos pero el value el mismo q el nombre del campo en l bd asi hariammos esto:

strSql = " SELECT Agencia.Identificador as Agencia, Agencia.Direccion as Direccion, Agencia.Telefono as Telefono, Agencia.Cajero_Automatico as Cajero_Automatico, Estado.Nombre_Estado as Estado, Ciudad.Nombre_Ciudad as Ciudad, Ubicacion.Descripcion as Ubicación From Agencia, Estado, Ciudad, Ubicacion "
strSql += " WHERE Agencia.EstadoID=Estado.EstadoID"
strSql += " AND Agencia.CiudadID=Ciudad.CiudadID"
strSql += " AND Agencia.UbicacionID=Ubicacion.UbicacionID"
strSql += " AND Agencia.EstadoID=" &DropDownList1.SelectedItem.Value
strSql += " AND Agencia.CiudadID=" &DropDownList2.SelectedItem.Value
strSql += " AND Agencia.UbicacionID=" &DropDownList3.SelectedItem.Value

For j = 0 To checkboxlist.Items.Count - 1
If checkboxlist.Items(j).Selected Then
' Entra si esta seleccionado
strSql +=" and " & checkboxlist.Items(j).value % " =true"
end if
Next

O ponerlo de tipo bit q coga el valor 0 o 1
strSql +=" and " & checkboxlist.Items(j).value % " =1"

Asi obligarias a que todas las agencias q te devuelva la consulta tengan todos los servicios que haya seleccionados.

Haber si ahora esto te sirve.
neivan está desconectado   Responder Citando
Antiguo 01-mar-2005, 07:03   #16 (permalink)
Sayra ha deshabilitado el karma
 
Avatar de Sayra
 
Fecha de Ingreso: diciembre-2004
Mensajes: 365
Hola Neivan muchas gracias
te consulto dos cosas
Cambie la opcion de char a bit en la porque no encontre boolean
cuando trato de correr la aplicacion me presenta el sigueinte error

Compilation Error
Description: An error occurred during the compilation of a resource required to service this request. Please review the following specific error details and modify your source code appropriately.

Compiler Error Message: BC30037: El carácter no es válido.

Line 102:strSql += " AND " &Check1.Items(j).value % "=1"
Sayra está desconectado   Responder Citando
Antiguo 01-mar-2005, 07:14   #17 (permalink)
neivan está en el buen camino
 
Avatar de neivan
 
Fecha de Ingreso: febrero-2005
Mensajes: 535
tienes razon,he mirao mis tablas,los campos q tengo de tipo bit,y las lineas de codigo q he metido apareden como VErdadero Falso

strSql += " AND " &Check1.Items(j).value % "=Verdadero"

O manten el char y q el char ese supongo q dentro tendra un si o un no
un true o false o verdadero...
La forma en la q lo tubieras puesto para saber q tiene ese servicio
Podrias incluso ponerlo de tipo int,cdo este servicio lo tenga q tenga de valor 1 y cdo no lo tenga q tenga de valor 0....

strSql += " AND " &Check1.Items(j).value % "= 'lo q tengas en el char para saber q este servicio lo tiene esta agencia "

Última edición por neivan; 01-mar-2005 a las 07:16.
neivan está desconectado   Responder Citando
Antiguo 01-mar-2005, 07:47   #18 (permalink)
Sayra ha deshabilitado el karma
 
Avatar de Sayra
 
Fecha de Ingreso: diciembre-2004
Mensajes: 365
Bueno lo deje tipo char y en tabal tiene si y no la cosa es que bueno aqui lo puse asiLine 102:strSql += " AND " &Check1.Items(j).value % "=si"

pero sigue dando el mismo error
Sayra está desconectado   Responder Citando
Antiguo 01-mar-2005, 07:52   #19 (permalink)
neivan está en el buen camino
 
Avatar de neivan
 
Fecha de Ingreso: febrero-2005
Mensajes: 535
strSql += " AND " & Check1.Items(j).value & "=si"
neivan está desconectado   Responder Citando
Antiguo 01-mar-2005, 09:18   #20 (permalink)
Sayra ha deshabilitado el karma
 
Avatar de Sayra
 
Fecha de Ingreso: diciembre-2004
Mensajes: 365
Neivan ahora me da un error extraño por que reviso yo lo encuentro bien
la aplicacion se carga selecciono parametros y cuando le doy enviar surge el error

Línea 1: sintaxis incorrecta cerca de 'ANDAgencia'.
Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.

Exception Details: System.Data.SqlClient.SqlException: Línea 1: sintaxis incorrecta cerca de 'ANDAgencia'.

Source Error:
Line 110: MyCommand.Fill(ds, "Agencia")

y bueno finalmente el codigo del boton quedo asi
Sub Button1_Click(sender As Object, e As EventArgs)

Dim s As String = "Elementos seleccionados:<br>"
Dim i As Int32
Dim j As Int32
For i = 0 to Check1.Items.Count-1

If not Check1.Items(i).Selected Then
Iblmessage.Text = "Es necesario que seleccione un servicio"

Else If Check1.Items(i).Selected Then

Dim ds As DataSet
Dim strSql As String
Dim MyConnection As SqlConnection
Dim MyCommand As SqlDataAdapter

strSql = " SELECT Agencia.Identificador as Agencia, Agencia.Direccion as Direccion, Agencia.Telefono as Telefono, Agencia.Cajero_Automatico as Cajero_Automatico, Agencia.Autobanco as Autobanco, Agencia.Taquilla_Externa as Taquilla_Externa, Agencia.Estacionamiento as Agencia_Estacionamiento, Estado.Nombre_Estado as Estado, Ciudad.Nombre_Ciudad as Ciudad, Ubicacion.Descripcion as Ubicación From Agencia, Estado, Ciudad, Ubicacion "
strSql += " WHERE Agencia.EstadoID=Estado.EstadoID"
strSql += " AND Agencia.CiudadID=Ciudad.CiudadID"
strSql += " AND Agencia.UbicacionID=Ubicacion.UbicacionID"
strSql += " AND Agencia.EstadoID=" &DropDownList1.SelectedItem.Value
strSql += " AND Agencia.CiudadID=" &DropDownList2.SelectedItem.Value
strSql += " AND Agencia.UbicacionID=" &DropDownList3.SelectedItem.Value

For j = 0 To Check1.Items.Count - 1
If Check1.Items(j).Selected Then
' Entra si esta seleccionado
strSql += " AND" & Check1.Items(j).value & "=si"
end if
Next

MyConnection = New SqlConnection("SERVER=MDS01; DATABASE=be; INTEGRATED SECURITY=false;PASSWORD=sa;USER=sa")
MyCommand = New SqlDataAdapter(strSql, MyConnection)

ds = new DataSet()
MyCommand.Fill(ds, "Agencia")

MyDataGrid.DataSource=ds.Tables("Agencia").Default View
MyDataGrid.DataBind()

End If
Next

End Sub
Sayra está desconectado   Responder Citando
Antiguo 01-mar-2005, 09:50   #21 (permalink)
Moderador
RootK llegará a ser famoso muy prontoRootK llegará a ser famoso muy pronto
 
Avatar de RootK
 
Fecha de Ingreso: noviembre-2002
Ubicación: México D.F
Mensajes: 7.552
Enviar un mensaje por MSN a RootK
Te falta darle un espacio a tu concatenación...

Cita:
...
..
For j = 0 To Check1.Items.Count - 1
If Check1.Items(j).Selected Then
' Entra si esta seleccionado
strSql += " AND " & Check1.Items(j).value & "=si"
end if
Next
RootK está desconectado   Responder Citando
Antiguo 01-mar-2005, 12:30   #22 (permalink)
Sayra ha deshabilitado el karma
 
Avatar de Sayra
 
Fecha de Ingreso: diciembre-2004
Mensajes: 365
Me esta generando unos errores mas extrños es como si fuera incompatible el nobre que tiene los item del checkboxlist con los que viene de la base de datos
vean por ustedes mismos

Checkboslist item agencia

El nombre de columna 'Agencia' no es válido.
Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.

Exception Details: System.Data.SqlClient.SqlException: El nombre de columna 'Agencia' no es válido.

Line 110: MyCommand.Fill(ds, "Agencia")

Checkboslist item Cajero_Automatico

El nombre de columna 'Cajeros_automáticos' no es válido.
Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.

Exception Details: System.Data.SqlClient.SqlException: El nombre de columna 'Cajeros_automáticos' no es válido.

Line 110: MyCommand.Fill(ds, "Agencia")



Checkboslist item Agencias con Estacionamiento

Línea 1: sintaxis incorrecta cerca de 'con'.
Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.

Exception Details: System.Data.SqlClient.SqlException: Línea 1: sintaxis incorrecta cerca de 'con'.

Source Error:



Line 110: MyCommand.Fill(ds, "Agencia")






Checkboslist item Autobanco
El nombre de columna 'si' no es válido.
Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.

Exception Details: System.Data.SqlClient.SqlException: El nombre de columna 'si' no es válido.

Source Error:

Line 110: MyCommand.Fill(ds, "Agencia")

Checkboslist item Taquilla Externa

Línea 1: sintaxis incorrecta cerca de 'externa'.
Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.

Exception Details: System.Data.SqlClient.SqlException: Línea 1: sintaxis incorrecta cerca de 'externa'.

Source Error:

Line 110: MyCommand.Fill(ds, "Agencia")




El codigo de los checkboxlist

<asp:checkboxlist id="Check1" runat="server" repeatcolumns="3">
<asp:ListItem>Agencia</asp:ListItem>
<asp:ListItem>Cajeros_autom&aacute;ticos</asp:ListItem>
<asp:ListItem>Agencia con estacionamiento</asp:ListItem>
<asp:ListItem>Autobanco</asp:ListItem>
<asp:ListItem>Taquilla externa</asp:ListItem>
</asp:checkboxlist>
Sayra está desconectado   Responder Citando
Antiguo 02-mar-2005, 02:26   #23 (permalink)