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

Problema al buscar sobre tabla

Estas en el tema de Problema al buscar sobre tabla en el foro de .NET en Foros del Web. Hola, estoy haciendo una aplicacion en la cual puedo buscar informacion en una tabla de acuerdo a la seleccion de los drops cargo solicitado y ...
  #1 (permalink)  
Antiguo 09/03/2005, 08:42
Avatar de Sayra  
Fecha de Ingreso: diciembre-2004
Mensajes: 365
Antigüedad: 19 años, 4 meses
Puntos: 1
Problema al buscar sobre tabla

Hola, estoy haciendo una aplicacion en la cual puedo buscar informacion en una tabla de acuerdo a la seleccion de los drops cargo solicitado y profesion

la aplicacion realiza la busqueda si se selecciona uno de los dos parametros o los dos.

pero a la hora de mostrarme los resultados de la busqueda en el datagrid

me muestra los registros repetidos y no se como corregir eso, es decir cada regidtro de la base de datos lo muestra varias veces seguidas en las lineas del grid

abajo dejo mi codijo desarrollado

<script language="VB" runat="server">
Sub Page_Load(Sender As Object, E As EventArgs)

Dim MyConnection As SqlConnection
MyConnection = New SqlConnection("SERVER=MDS01; DATABASE=be; INTEGRATED SECURITY=false;PASSWORD=sa;USER=sa")

If Not IsPostBack

Dim ds As DataSet

Dim MyCommand As SqlDataAdapter

MyCommand = New SqlDataAdapter ("select CargoID, Nombre_Cargo from Cargo_Solicitado" , MyConnection)

ds = New DataSet ()

MyCommand.Fill(ds,"Cargo_Solicitado")

DropDownList1.DataSource = ds.Tables("Cargo_Solicitado").DefaultView
DropDownList1.DataTextField = "Nombre_Cargo"
DropDownList1.DataValueField ="CargoID"
DropDownList1.DataBind()
DropDownList1.Items.Insert(0, "Seleccione un item")
DropDownList1.SelectedIndex = 0

Dim dc As DataSet
Dim MyCommand2 As SqlDataAdapter
MyCommand2 = New SqlDataAdapter ("select ProfesionID, Nombre_Profesion from Profesion", MyConnection)
dc = New DataSet ()
MyCommand2.Fill(dc,"Profesion")

DropDownList2.DataSource = dc.Tables("Profesion").DefaultView
DropDownList2.DataTextField = "Nombre_Profesion"
DropDownList2.DataValueField = "ProfesionID"
DropDownList2.DataBind()
DropDownList2.Items.Insert(0, "Seleccione un item")
DropDownList2.SelectedIndex = 0
end if
end sub

Sub Button1_click (sender As Object, e As EventArgs)

Dim SelectCommand As String = "select *, Nombre_Cargo, Nombre_Profesion from SolicitudEmpleo, Cargo_Solicitado, Profesion"
If DropDownList1.SelectedIndex then

SelectCommand += " WHERE SolicitudEmpleo.Cargo_Solicitado = Cargo_Solicitado.Nombre_Cargo"
SelectCommand += " AND SolicitudEmpleo.CargoID= Cargo_Solicitado.CargoID"
SelectCommand += " AND SolicitudEmpleo.CargoID=" &DropDownList1.SelectedItem.Value
bingrid (SelectCommand)

else if DropDownList2.SelectedIndex then

SelectCommand += " Where SolicitudEmpleo.Profesion= Profesion.Nombre_Profesion"
SelectCommand += " AND SolicitudEmpleo.ProfesionID= Profesion.ProfesionID"
SelectCommand += " AND SolicitudEmpleo.ProfesionID=" &DropDownList2.SelectedItem.Value
bingrid (SelectCommand)
Else if DropDownList1.SelectedIndex and DropDownList2.SelectedIndex then

SelectCommand += " WHERE SolicitudEmpleo.Cargo_Solicitado = Cargo_Solicitado.Nombre_Cargo"
SelectCommand += " AND SolicitudEmpleo.Profesion= Profesion.Nombre_Profesion"
SelectCommand += " AND SolicitudEmpleo.ProfesionID= Profesion.ProfesionID"
SelectCommand += " AND SolicitudEmpleo.CargoID= Cargo_Solicitado.CargoID"
SelectCommand += " AND SolicitudEmpleo.CargoID=" &DropDownList1.SelectedItem.Value
SelectCommand += " AND SolicitudEmpleo.ProfesionID=" &DropDownList2.SelectedItem.Value
bingrid (SelectCommand)
end if

end sub

Sub bingrid(SelectCommand as string)
Dim DS As DataSet
Dim MyConnection As SqlConnection
Dim MyCommand As SqlDataAdapter

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

DS = new DataSet()
MyCommand.Fill(DS, "SolicitudEmpleo")

MyDataGrid.DataSource=DS.Tables("SolicitudEmpleo") .DefaultView
MyDataGrid.DataBind()

end sub
</script>
  #2 (permalink)  
Antiguo 09/03/2005, 09:37
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
Hola sayra..

Cita:
me muestra los registros repetidos y no se como corregir eso, es decir cada regidtro de la base de datos lo muestra varias veces seguidas en las lineas del grid
Creo que el problema viene en tu query... estas relacionando las tablas a traves de un nombre y no de ID, y con ello no se cumplen las reglas de normalización y diseño de BD.., pero ese es otro tema... tendrías que cambiar ésto:

Cita:
...
Dim SelectCommand As String = "select *, Nombre_Cargo, Nombre_Profesion from SolicitudEmpleo, Cargo_Solicitado, Profesion"
If DropDownList1.SelectedIndex then

SelectCommand += " WHERE SolicitudEmpleo.Cargo_Solicitado = Cargo_Solicitado.Nombre_Cargo"
SelectCommand += " AND SolicitudEmpleo.CargoID= Cargo_Solicitado.CargoID"
SelectCommand += " AND SolicitudEmpleo.CargoID=" &DropDownList1.SelectedItem.Value
Por algo como ésgto:

Cita:
Dim SelectCommand As String = "select *, Nombre_Cargo, Nombre_Profesion from SolicitudEmpleo"

If DropDownList1.SelectedIndex then

SelectCommand += " INNER JOIN SolicitudEmpleo "
SelectCommand += " ON SolicitudEmpleo.CargoID= Cargo_Solicitado.CargoID"
SelectCommand += " WHERE SolicitudEmpleo.CargoID=" &DropDownList1.SelectedItem.Value
bingrid (SelectCommand)

else if DropDownList2.SelectedIndex then

SelectCommand += " INNER JOIN Profesion"
SelectCommand += " ON SolicitudEmpleo.ProfesionID= Profesion.ProfesionID"
SelectCommand += " WHERE SolicitudEmpleo.ProfesionID=" &DropDownList2.SelectedItem.Value
bingrid (SelectCommand)
...
...ETC...
Espero que te sirva de algo, de todas formas andamos por aqui por cualquier cosa...

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

Exentrit - Soluciones SharePoint & Net
  #3 (permalink)  
Antiguo 09/03/2005, 10:16
Avatar de Sayra  
Fecha de Ingreso: diciembre-2004
Mensajes: 365
Antigüedad: 19 años, 4 meses
Puntos: 1
Hola Root muchas gracias me sirvio lo que me digiste aunque le hice un ajustillo

Pero de igual forma muchas gracias se aprecia la asistencia
Hasta la vista
  #4 (permalink)  
Antiguo 09/03/2005, 10:32
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
Cita:
Hola Root muchas gracias me sirvio lo que me digiste
Cool, por algun momento llegue a pensar que el mensaje se expandería tanto como tu post pasado de "Busqueda por parametros en tablas" .. jeje (es broma.. )

See ya..

Última edición por RootK; 09/03/2005 a las 10:33
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 13:37.