Problemer med databinding til DropDownList i VS til MS SQL 2005

Tags:    databaser

Jeg skal lave en hjemmeside hvor an kan oprette et hold med 5 brugere som så skal løbe stafet. Når man opretter en bruger skal man så kune vælge i hvilken del af rækkefølgen fra 1-5 man ønsker at være. Det har jeg så gjort ved at lave en tabel der hedder Rækkefølge hvor man så kan få smidt værdierne 1-5 ind fra tabellen Nummer.

det ser således ud. Der er 2 forskellige tabeller i samme database:

Nummer(Tabellen)
Nummer
1
2
3
4
5



Rækkefølge(Tabellen)
PK*OrderID PK*HoldID UserID



----------

Det der skal ske er, at min DropDownList i VisualStudio (ASP.NET) skal vise fra 1-5 fra Nummer - men skal så smide det nummer man vælger ind i Rækkefølge_tabel under OrderID.

Min INSERTguery ser således ud:
INSERT INTO Rækkefølge(OrderID) VALUES (@Nummer)

--------------

Properties for dropdownlisten:

DataScourceID: SqlDataSource3
DataTextField: Nummer
DataValueField: OrderID

--------------

prolemet er bare at jeg ikke får vist værdierne fra 1-5 i min liste når jeg kører programmet.

Nu skal det først lige siges jeg er ikke en haj til databaser så kan gdt være min løsning ikke er så smart og der findes andre måder at gøre det på?

Håber jeg har været detaljeret nok om mit problem









1 svar postet i denne tråd vises herunder
1 indlæg har modtaget i alt 4 karma
Sorter efter stemmer Sorter efter dato
Generelt skal du undgå danske tegn i dine tabelnavne og navne på databaseobjekter generelt. Ved ikke om det kun er her du har skrevet det med danske tegn eller om det blot er her.

Jeg skal lige være sikker på at jeg har forstået det rigtigt. Du har to tabeller, der er defineret på nedenstående måde.

Fold kodeboks ind/udKode 


Herefter skal du først indsætte data i NUMBERS tabellen, da ORDERS tabellen referer til denne og forventer at data i denne eksisterer.

Fold kodeboks ind/udKode 


Nu kan du indsætte i ORDERS tabellen forudsat at du vælger et ORDER_ID som eksisterer i NUMBERS tabellen. Herudover er skal du huske at dit TEAM_ID og ORDER_ID er delt primærnøgle. Dvs. du kan oprette et TEAM_ID flere gange, men med forskellig ORDER_ID. Skal dette ikke være tilfældet, så skal du kun bruge TEAM_ID som primærnøgle.

Nedenstående indsætter data i ORDERS tabellen.

Fold kodeboks ind/udKode 


Når du skal hente data fra databasen er det simpelt og gøres blot ved hjælp af en enkelt SELECT sætning, som du kan varierer med en "ORDER" til sidst.

Fold kodeboks ind/udKode 


På samme måde kan du hente fra NUMBERS tabellen.

Fold kodeboks ind/udKode 


Generelt skal du undgå en direkte binding af dine komponenter i brugergrænsefladen til databasen. Lav i stedet en veldefineret snitflade og brug den i stedet. Det kræver lidt mere arbejde, men det bliver meget mere strukturet og det er væsentlig nemmere at udskifte brugergrænseflade eller databaseudbyder, hvis det skulle blive aktuelt.

Hth









Indlæg senest redigeret d. 01.06.2007 20:39 af Bruger #10448
t