13. januar 2006 - 08:58Der er
14 kommentarer og 2 løsninger
Databasekald i codebehind-fil
Jeg har lavet en del asp, og har nu kastet mig over asp.net, men har lidt problemer med at få databasekald til at virke.
Jeg vil gerne lave en funktion i min codebehind-fil, så jeg let kan kalde databasen. Er der nogen der kan give et eksempel på, hvordan det gøres (både selve kaldet fra .aspx-filen og funktionen i codebehind)?
Jeg vil helst undgå et 3.parts komponent, og er det ikke det du henviser til, snepnet?
arne_v, jeg får ikke så meget ud af dit link, men jeg må også indrømme at jeg ikke læste det helt igennem (dovenskaben længe leve :-) Jeg ville gerne have haft et konkret eksempelt.
Jeg har dog fundet frem til, hvordan jeg kan lægge databasekaldet i code-behind filen, men jeg kan ikke lige se, hvordan jeg kan lave den generelt for alle sider? I code-behind filen laver jeg en "public class minside" og i aspx-siden, laver jeg en "inherits=minside". Så passer de to sammen, men hvordan kan jeg gøre, hvis jeg ønsker at have en funktion/sub jeg kan kalde fra alle filerne?
Jeg kan jo ikke bare lave det med inherits, da nogle af funktionerne kun skal passe til den enkelte side.
nu er der jo mange måder at lave den slags på, men mht. dit spørgsmål. du kan sagtens lave dig en baseklasse for alle dine forms, og så lægge noget kode i den. du skal så bare arve fra den, hvilket kun skal angives i din codebehind:
public class SomeForm : DinBaseklasse
og ellers kan du bare lægge din kode i en klasse for sig, og kalde den fra dine sider på helt almindelig vis.
har du en klasse
public class SomeClass { public string GetString() { return "string"; } }
bruger du den bare fra dine formklasser som enhver anden type:
SomeClass instance = new SomeClass(); someLabel.Text = instance.GetString();
men det er ikke unormalt for sådan noget du skal til, at lave en klasse med nogle static metoder, du kan kalde hvorfra du vil (sålænge du har adgang til det namespace det nu ligger i).
public class SomeClass { public static string GetString() { return "string"; } }
på den måde kan du tilgå funktionaliteten uden at instantiere klassen - sådan her:
snetpnet, det ligner det jeg har brug for! Jeg laver det dog i vb, og jeg kan ikke umiddelbart få konverteres dit eksempelt, så det virker. I hvert fald jeg problemer at kalde funktionen fra min code-behind fil.
Kan du give et eksempel på det i vb, eller kender du et link til en side der viser eksempler?
Jeg tror efterhånden jeg er kommet så langt, at jeg kan få det til at virke. Jeg har i hvert fald lavet nogle små test-funktioner, som kører som de skal.
snepnet, vil du smide et svar så du kan få dine point?
snepnet, det kan være du kan svare på et andet lille spørgsmål.... jeg har en side hvor man vælger et punkt på en dropdown-liste, og ud fra det valg hentes data i en database. Disse data sættes ind i nogle andre felter, f.eks. sådan her: mittextfelt.text = rs("datafelt")
Men fleterne i db'en kan godt indeholde null, og det kan man åbenbart ikke sætte ind i text-felterne. Ved du hvordan man kommer uden om det problem?
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.