Toon posts:

C# .NET Order By probleem

Pagina: 1
Acties:

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Hallo allemaal,

Ik ben bezig met het maken van een programma.
In dit programma heb ik een gridview, met daarin bedrijven met bijbehorende vestigingen.
ik wil sorteren op bedrijven en vestigingen die daarbij hoort.

Bijv:

Aangemaakte volgorde bederijven(dus volgorde Company ID's):

1. Hoofdbedrijf 1.
2. Hoofdbedrijf 2.
3. Vestiging bij hoofdbedrijf 1.
4. Vestiging bij hoofdbedrijf 2.

Hierboven zie je een voorbeeld van hoe het er nu uitziet in het gridview, maar ik zou liever dit zien:

1. Hoofdbedrijf 1.
2. Vestiging bij hoofdbedrijf 1.
3. Hoofdbedrijf 2.
4. Vestiging bij hoofdbedrijf 2.

Ik weet wel hoe ik het probleem moet oplossen, maar ik weet de uitvoering ervan niet.
itilTool.CompanyuserCollection CUC2 = new Select()
.From(itilTool.Companyuser.Schema)
.InnerJoin(itilTool.Company.Schema)
.Where("UserID").IsEqualTo(UserID)
.OrderAsc("MainCompanyID")
.ExecuteAsCollection<itilTool.CompanyuserCollection>();
Dit is de code die ik nu gebruik. MainCompanyID bevat een 0 als het bedrijf een hoofdvestiging is,
en het CompanyID van de hoofdvestiging als het een vestiging is.
Nu wil ik dus eerst 1 hoofdbedrijf pakken, dan de bijbehorende vestigingen.
Daarna weer het volgende hoofdbedrijf, en de daarbijhorende vestigingen.

Afbeeldingslocatie: http://www.plaatjesupload.nl/bekijk/2008/12/08/1228724880-480.jpg


Alvast bedankt :)

Acties:
  • 0 Henk 'm!

  • The_Ghost16
  • Registratie: Januari 2004
  • Laatst online: 19-05 10:05
Haal met een query alle hoofdvestigingen op. En haal dan per hoofdvestiging alle bij behorende vestigingen op.

Dit is een hele simpele constructie. Plaats ze vervolgens 1 voor 1 in de grid view en het is gesorteerd zoals je het hebben wilt.

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
oke, ik heb hier de query voor het ophalen van alle hoofdvestigingen:

itilTool.CompanCollection CC = new Select()
.From(itilTool.Company.Schema)
.Where("UserID").IsEqualTo(UserID)
.And("MainCompanyID").IsEqualTo(0) // 0 = hoofdvestiginen
.ExecuteAsCollection<itilTool.CompanyuserCollection>();

de query voor de bijbehorende vestigingen per hoofdbedrijf:


itilTool.CompanCollection CC2 = new Select()
.From(itilTool.Company.Schema)
.Where("UserID").IsEqualTo(UserID)
.And("MainCompanyID").IsEqualTo(MainCompanyID) // MainCompanyID vraag ik op d.m.v. request.querystring
.ExecuteAsCollection<itilTool.CompanyuserCollection>();

Hoe kan ik deze queries samen in 1 gridview laten zien?

Bedankt

Acties:
  • 0 Henk 'm!

  • The_Ghost16
  • Registratie: Januari 2004
  • Laatst online: 19-05 10:05
Maak een datasource aan waarin je de resultaten van de eerste query stopt.
Loop door deze datasource heen waarbij je de rij waar je aan toe bent toevoegt aan een nieuwe datasource of aan de gridview.
Per rij haal je dan aan de hand van een id of zo alle bijbehorende vestigingen. Deze stop je in dezelfde datasource als de hoofdvestigingen zelf of ook direct in de gridview.

Acties:
  • 0 Henk 'm!

  • Niemand_Anders
  • Registratie: Juli 2006
  • Laatst online: 09-07-2024

Niemand_Anders

Dat was ik niet..

Er zitten een paar rare velden in je datamodel zoals Customers , Establishments, employees (allen in meervouds vorm) . SuperUserID; Waarom is dat geen property van een employee? En wat is een SuperUserID voor een bedrijf? Directeur? Filiaal manager? Schoonmaker?

Daarnaast kent MSSQL vanaf versie 2005 om queries recursive uit te voeren. Heb je in google al eens gezocht op recursive queries?

[ Voor 3% gewijzigd door Niemand_Anders op 08-12-2008 10:25 ]

If it isn't broken, fix it until it is..


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
itilTool.CompanyCollection CC = new Select()
.From(itilTool.Company.Schema)
.Where("UserID").IsEqualTo(UserID)
.And("MainCompanyID").IsEqualTo(0) // 0 = hoofdvestiginen
.ExecuteAsCollection<itilTool.CompanyCollection>();


foreach(itilTool.Company C in CC)
{

}

is dit wat je bedoelt?

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Oh deze tabel is maar een van de vele tabellen die ik gebruik. Customers bevat het aantal klanten dat het bedrijf heeft, establishments bevat het aantal vestigingen voor dat bedrijf (maar deze word niet meer gebruikt), employees is het aantal werknemers binnen het bedrijf. SuperUserID word gebruikt om te kijken welke user het bedrijf heeft aangemaakt.

Ik heb overigens nog niet gezocht op recursive queries, bedankt voor de tip.

Acties:
  • 0 Henk 'm!

  • kenneth
  • Registratie: September 2001
  • Niet online

kenneth

achter de duinen

Waarom twee queries, je kan toch gewoon een selfjoin doen?

Look, runners deal in discomfort. After you get past a certain point, that’s all there really is. There is no finesse here.


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
ik ben nog niet heel ver gevorderd :) dus ik zal even wat info zoeken over de selfjoin

Acties:
  • 0 Henk 'm!

Verwijderd

offtopic:
KvKNumber moet in het Engels CoCNumber (Chamber of Commerce) zijn.
Pagina: 1