Piecemaker
Nieuwe gebruiker
- Lid geworden
- 10 apr 2009
- Berichten
- 2
hallo,
ik ben voor een project voor school een datingsite aan het maken, momenteel ben ik bezig met een zoekpagina: er kan op een 20-tal termen gezocht worden, die allemaal ingevuld moeten worden. Zo is er bijvoorbeeld: geslacht, regio, leeftijd, lengte, gewicht, ... Allemaal redelijk simpel dus. Maar ik heb op het zoekformulier ook dingen als: burgerlijke staat, persoonlijkheid, beroep, .... Hier kan je dan uit een tabel verschillende waardes aanvinken. Bij burgerlijke staat kan je zo bijvoorbeeld aanvinken: vrijgezel, getrouwd, gescheiden, ... (9 opties momenteel in totaal)
Als ik hier nu bijvoorbeeld meerdere opties aanvink (vrijgezel en gescheiden bvb), dan moet er gezocht worden naar alle profielen die vrijgezel of gescheiden zijn.
Op het zoekformulier steek ik dus alle geselecteerde waardes in een array, in dit geval dus een array met 2 elementen. In mijn zoekfunctie geef ik dan deze arrays mee als parameters.
Dit is tot hiertoe mijn zoekfunctie: (generic list of geprobeerd, werkt ook niet)
VB.NET en Access DB (tijdelijk)
BurgerlijkeStaat.Omschrijving IN @burgerlijkestaat werkt blijkbaar niet dus.
ter verduidelijking, structuur databank van de de betreffende tabellen:
tabel PersoonlijkeInfo: PK = AbonnementID, andere kolommen: GeslachtID, WoonplaatsID, BurgerlijkeStaatID
tabel BurgerlijkeStaat: PK = BurgerlijkeStaatID, andere kolom: omschrijving
Ik hoop dat het een beetje duidelijk is zo, niet makkellijk uit te leggen.
Iemand een idee hoe ik dit kan oplossen??
ik ben voor een project voor school een datingsite aan het maken, momenteel ben ik bezig met een zoekpagina: er kan op een 20-tal termen gezocht worden, die allemaal ingevuld moeten worden. Zo is er bijvoorbeeld: geslacht, regio, leeftijd, lengte, gewicht, ... Allemaal redelijk simpel dus. Maar ik heb op het zoekformulier ook dingen als: burgerlijke staat, persoonlijkheid, beroep, .... Hier kan je dan uit een tabel verschillende waardes aanvinken. Bij burgerlijke staat kan je zo bijvoorbeeld aanvinken: vrijgezel, getrouwd, gescheiden, ... (9 opties momenteel in totaal)
Als ik hier nu bijvoorbeeld meerdere opties aanvink (vrijgezel en gescheiden bvb), dan moet er gezocht worden naar alle profielen die vrijgezel of gescheiden zijn.
Op het zoekformulier steek ik dus alle geselecteerde waardes in een array, in dit geval dus een array met 2 elementen. In mijn zoekfunctie geef ik dan deze arrays mee als parameters.
Dit is tot hiertoe mijn zoekfunctie: (generic list of geprobeerd, werkt ook niet)
VB.NET en Access DB (tijdelijk)
Code:
Public Shared Function findAbonnementIDByZoektermen(ByVal geslacht As Integer, ByVal regio As Integer, ByVal zoekvoor As Integer, ByVal minLeeftijd As Integer, ByVal maxLeeftijd As Integer, ByVal burgerlijkeStaat As Generic.List(Of String)) As OleDbDataReader
Try
Dim cts As ConnectionStringSettings = ConfigurationManager.ConnectionStrings("DB")
Dim con As New OleDbConnection(cts.ConnectionString)
Dim cmd As New OleDbCommand("SELECT PersoonlijkeInfo.AbonnementID FROM PersoonlijkeInfo, WoonplaatsRegio, VoorkeurInfo, BurgerlijkeStaat " & _
"WHERE PersoonlijkeInfo.GeslachtID=@geslacht AND " & _
"WoonplaatsRegio.RegioID=@regio AND " & _
"VoorkeurInfo.TypeID=@zoekvoor AND " & _
"PersoonlijkeInfo.GeboorteDatum >= @minDatum AND " & _
"PersoonlijkeInfo.GeboorteDatum <= @maxDatum AND " & _
"BurgerlijkeStaat.Omschrijving IN @burgerlijkestaat AND " & _
"PersoonlijkeInfo.WoonplaatsID=WoonplaatsRegio.WoonplaatsID AND " & _
"PersoonlijkeInfo.AbonnementID=VoorkeurInfo.AbonnementID AND" & _
"PersoonlijkeInfo.BurgerlijkeStaatID=BurgerlijkeStaat.BurgerlijkeStaatID")
cmd.Parameters.AddWithValue("@geslacht", geslacht)
cmd.Parameters.AddWithValue("@regio", regio)
cmd.Parameters.AddWithValue("@zoekvoor", zoekvoor)
cmd.Parameters.AddWithValue("@minDatum", Date.Today.AddYears(-maxLeeftijd))
cmd.Parameters.AddWithValue("@maxDatum", Date.Today.AddYears(-minLeeftijd))
cmd.Parameters.AddWithValue("@burgerlijkestaat", burgerlijkeStaat)
cmd.Connection = con
con.Open()
Return cmd.ExecuteReader(CommandBehavior.CloseConnection)
Catch ex As Exception
End Try
Return Nothing
End Function
BurgerlijkeStaat.Omschrijving IN @burgerlijkestaat werkt blijkbaar niet dus.
ter verduidelijking, structuur databank van de de betreffende tabellen:
tabel PersoonlijkeInfo: PK = AbonnementID, andere kolommen: GeslachtID, WoonplaatsID, BurgerlijkeStaatID
tabel BurgerlijkeStaat: PK = BurgerlijkeStaatID, andere kolom: omschrijving
Ik hoop dat het een beetje duidelijk is zo, niet makkellijk uit te leggen.
Iemand een idee hoe ik dit kan oplossen??