Avatar billede mema Nybegynder
18. april 2007 - 22:54 Der er 9 kommentarer og
1 løsning

Spørgsmål

Jeg skal have et skema, hvor man tilføjer nogle navne, adresse og andre personlige oplysninger i en sql database.

På en oversigt skal man kunne se disse oplysninger, hvor oplysningerne bliver sorteret efter udfyldingsdato af skemaet.

En gang i mellem ryger nogle ud af oversigten, dvs slettes af aministratoren. Der skal være en kolonne i oversigten (rækkefølge kolonne), hvor der altid vises et nummer (1,2,3,4 osv.) for tilbageliggende personer. Denne kolonne skal opdateres på denne måde: Hvis man sletter fx personen, der har rækkefølgenummer 8, så øvrige poster i denne kolonne bliver opdateret, sådan at nummer 9 får nu nummer 8 tildelt og vist osv. Dvs. rækkefølge-kollonen skal altid være fra 1 til uendelige (måske 500), og der skal ikke være nogen hul i rækkefølgen, hvis jeg udtrykker mig rigtigt.

Jeg ved ikke hvordan jeg skal løse denne opgave. Fx skal jeg oprette 2 databaser eller en, og om løsningen skal en sql-løsning eller løsningen skal kodes i asp.net?

Jeg bruger asp.net 2 og C#.
Avatar billede anri Novice
19. april 2007 - 13:34 #1
Der er jo mange måder at løse den opgave på.
Umiddelbart ville jeg vælge at benytte en SQL server eller en access database under ASP.NET

Jeg har forstået det sådan, at du blot skal have en fortløbende tæller på de personer der er i databasen pt.
Altså en unik ID gør sig jo bedst hvis du ikke ændrer den når dørst den er oprettet. Personligt ville jeg nok ikke lave en fortløbende tæller i databasen, men nærmere give hver record et nummer når jeg opretter visningen i asp.net delen.
Avatar billede mema Nybegynder
19. april 2007 - 21:50 #2
Tak for svaret. Det er rigtigt, at jeg skal have en fortløbende tæller af personerne i databasen på ethvert tidspunkt.
Jeg er helt ny i sql. Men mener du at løsningen er at oprette en stored procedure, og kan du fortælle mig hvad du mener med "en unik id...."?
Hvordan skal jeg give hver record et nummer. Jeg bliver glad hvis du kommer med nogle koder/eksempler.
Avatar billede anri Novice
19. april 2007 - 22:56 #3
Bruger du access eller SQL?
Avatar billede mema Nybegynder
20. april 2007 - 12:43 #4
Jeg bruger SQL 2005 prof.
Avatar billede anri Novice
20. april 2007 - 21:34 #5
Hver post i en tabel bør have sin egen unikke ID. Denne id kan du bruge når andre tabeller skal referere til posten og derfor skal den helst ikke ændres når du sletter førliggende poster.

Overvej derfor om det også er nødvendigt at have en tæller der ændres hver gang du tilføjer og sletter poster.

Hvis du så SKAL have en fortløbende tæller, er der 3 måder at gøre det på.
1. Du kan have en kolonne i din database du opdaterer hver gang der tilføjes og sletter poster. Hvis du har mange poster og meget trafik i din database vil jeg IKKE anbefale denne metode.
2. Du kan lægge en pseudo-kolonne i din forespørgsel til databasen. Også en lidt besværlig metode, der kræver en såkaldt sub-query. Se eksempel:
SELECT emp_id, lname, fname, job_id,
(SELECT COUNT(*) FROM employee e2 WHERE e2.lname <= e.lname AND e2.job_id = 10) AS rownumber
FROM employee e
WHERE job_id = 10
ORDER BY lname

3. Du kan bare lave din forespørgsel og så lægge numre på kolonnerne i din asp.net applikation.
Avatar billede mema Nybegynder
27. juli 2007 - 14:30 #6
Vedr. din 3. forslag. Hvad er det du præcis mener. Kan du beskrive det lidt mere. tak.
Avatar billede mema Nybegynder
15. april 2008 - 13:21 #7
Send venligst et svar.
Avatar billede anri Novice
15. april 2008 - 15:07 #8
Fik du det løst?
Avatar billede mema Nybegynder
15. april 2008 - 22:26 #9
Ikke helt.
Men det ser ud som om sådan skal gøres. Men jeg skal prøve at køre din 2. forslag mod et eller anden tabel.
Avatar billede anri Novice
15. april 2008 - 23:01 #10
Det jeg mente med nummer 3, var at du simpelthen bibeholdt den ikke-fortløbende tæller i databasen, men så viste posterne med en fortløbende tæller i ASP delen.

Tabellen :
1 aa
2 bb
5 cc

I HTML delen viser du så blot en counter der tæller op for hver post.
1 : aa
2 : bb
3 : cc

Du kan jo sagtens have en reference til det originale index alligevel
<div Index="5" onclick="alert(this.Index);">3 : cc</div>
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester