Ik probeer m.b.v een MS Access database en een SELECT query data in een dataset te gooien en deze vervolgens aan een repeater toe te wijzen. Het is een redelijke grote query die ik door MS Access zelf heb laten genereren:
Het probleem is dat wanneer ik deze query gebruik om gegevens op te halen uit de database de dataset niet gevuld lijkt te worden. De query werkt zelf wel als ik hem in MS Access draai. Ik krijg netjes alle gewenste gegevens.
De code die ik gebruik in ASP.NET:
Deze code gebruik ik vaker om repeaters te vullen. Met een eenvoudige query werkt het wel gewoon. vb:
Repeater is ook zodanig dat ie per record een nieuwe rij weergeeft, en werkt ook met bovenstaande simpele query. Probleem lijkt dus in de grote query te zitten.
Heeft iemand een mogelijke oplossing hiervoor?
SQL:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
| SELECT CompetitieWedstrijden.datum, CompetitieWedstrijden.wedstrijdID, CompetitieTegenstanders.naam, CompetitieWedstrijden.thuisScore, CompetitieTegenstanders_1.naam, CompetitieWedstrijden.uitScore FROM (CompetitieTegenstanders AS CompetitieTegenstanders_1 RIGHT JOIN (CompetitieTegenstanders RIGHT JOIN CompetitieWedstrijden ON CompetitieTegenstanders.tegenstanderID = CompetitieWedstrijden.thuisTeamID) ON CompetitieTegenstanders_1.tegenstanderID = CompetitieWedstrijden.uitTeamID) INNER JOIN CompetitieTeams ON CompetitieWedstrijden.teamID = CompetitieTeams.teamID WHERE (((CompetitieTegenstanders.naam) Like 'Almeerspin*') AND ((CompetitieWedstrijden.week)=1) AND ((CompetitieWedstrijden.competitieID)=20)) OR (((CompetitieWedstrijden.week)=1) AND ((CompetitieWedstrijden.competitieID)=20) AND ((CompetitieTegenstanders_1.naam) Like 'Almeerspin*')) GROUP BY CompetitieWedstrijden.datum, CompetitieWedstrijden.wedstrijdID, CompetitieTegenstanders.naam, CompetitieWedstrijden.thuisScore, CompetitieTegenstanders_1.naam, CompetitieWedstrijden.uitScore, CompetitieTeams.categorie, CompetitieTeams.teamNr ORDER BY CompetitieTeams.categorie, CompetitieTeams.teamNr |
Het probleem is dat wanneer ik deze query gebruik om gegevens op te halen uit de database de dataset niet gevuld lijkt te worden. De query werkt zelf wel als ik hem in MS Access draai. Ik krijg netjes alle gewenste gegevens.
De code die ik gebruik in ASP.NET:
Visual Basic .NET:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
| Sub WedstrijdProgrammaWeergeven() dim objConn as new OleDbConnection ("Provider=Microsoft.Jet.OLEDB.4.0;" & "Data Source=" & DatabaseLocatie()) dim objselectCmd as String objselectCmd = bovenstaande query dim myCommand as new OleDbDataAdapter (objselectCmd, objConn) dim ds as DataSet = new DataSet() myCommand.Fill(ds, "CompetitieWedstrijden") if (ds.Tables("CompetitieWedstrijden").Rows.Count = 0) ProgrammaRepeater.Visible = False response.write(objselectCmd) else ProgrammaRepeater.DataSource = ds.Tables("CompetitieWedstrijden").DefaultView end if DataBind() End Sub |
Deze code gebruik ik vaker om repeaters te vullen. Met een eenvoudige query werkt het wel gewoon. vb:
SQL:
1
| SELECT * FROM CompetitieWedstrijden |
Repeater is ook zodanig dat ie per record een nieuwe rij weergeeft, en werkt ook met bovenstaande simpele query. Probleem lijkt dus in de grote query te zitten.
Heeft iemand een mogelijke oplossing hiervoor?
[ Voor 5% gewijzigd door Verwijderd op 04-08-2005 21:10 ]