Programmeringsteknologi

Slides:



Advertisements
Lignende præsentationer
Introduktion til HTML HTML dokumentets struktur & Indhold.
Advertisements

Introduktion til Javascript – Grundlæggende Webdesign, F2004. Introduktion til Javascript.
Hjemmesidekonstruktion Tjekspørgsmål 1.Hvad er et markup-sprog – hvad bruges det til? 2.Hvad er forskellen mellem et markup-sprog og et scriptsprog? 3.Hvad.
Introduktion til HTML Formularer V1 introduktion til formularer Den sidste af HTML strukturmarkørerne er FORM-markøren, der bruges til at lave.
Next Generation Operations Management AutoNOC 2. AutoNOC 2 Business fordele.
Web 2.0 Teoretisk viden.
Effektive procedurer med integrerede webservices Applikationer til Office - Smart Clients Case: Digitalt Forvaltningstjek hos Erhvervs- og Selskabsstyrelsen.
Introduktion til HTML Hypertekst referencer. Uden links – Hypertekst referencer – intet world wide web. World wide web er et Hypermedium….. Link definition.
Introduktion til ASP.NET 2 Michell Cronberg Microsoft MVP, MCAD TechTalks hos Microsoft.
Udvikling af ANDROID programmer (apps) Jens Bennedsen og Jesper Tørresø marts 2011.
IT i Byggeriet Semester kursusgang Introduktion til projektweb og html Kjeld Svidt Kjeld Svidt  Institut for Bygningsteknik  Aalborg.
Atlas/Otto Knudsen 1 "Atlas"  AJAX Extensions til ASP.NET.
OPFINDELSEN AF WEBBEN JOEK © TEC 2011 WWW blev opfundet i 1990 af Tim Berners-Lee. Berners- Lee var en fysiker ved CERN, det europæiske laboratorium for.
Sikkerhed/Otto Knudsen 1 Diagnostics  Debug af web-applikationer.
Fra Internet til semantisk web via taksonomier AF:Hosein Askari ITST.
01 – Java platform for starters. 2 NOEA2009Java-kursus – Java Platform Introduktion til Java Baggrund Hvad er Java? Faciliteter i Java.
Intro Variabler - datatyper. 2. forelæsning Hvad skete sidste gang Hvad er PHP? Kursussammensætning: læse – newsgroup – forelæsning – øvelsestime – aflevering.
ASP.NET Cache, State DataGrid og Diagnostics. Agenda – ASP.NET Cache, State og Cookies ( 1 del ) –Cache –Static member –Application State –Session State.
Mød Microsoft – for udviklere & arkitekter Visual Studio, Express og Team System Niels Hilmar Madsen Microsoft
Masterpages/Otto Knudsen 1 Master Pages Master Pages i ASP.NET 2.0.
Eksekvering/Otto Knudsen 1 Udrulning Publicering af en web-applikation.
Introduktion/Otto Knudsen 1 Overblik WebForms ASP.NET.
Webserveren kan afvikle flere applikationer, der hver har deres eget selvstændige ”liv” og hukommelse. Den enkelte applikation består typisk af flere elementer.
Programmeringsteknologi
 Intro  Historien – starten på det hele  Formålet  Hjernerne bag  Bomben bruges  Verden synker – Internettet stiger  På nettet kan vi alt  Effekter.
1..NET Arkitektur. 2 Nordjyllands Erhvervakademi Mål “Microsoft.NET is based on the Common Language Runtime (CLR) and an extensive set of Framework.
18 – Java Server Faces. 2 NOEA2009Java-kursus – JSF 2 Web-applikationer - 1 Brugere interagerer med en Web-browser Browseren sender forespørgsler til.
1 Webdesign - De første trin Grundliggende begreber Internettet (1969-): En fællesbetegnelse for netværk eller tjenester der benytter samme.
CLR (.NET) og JVM 1.NET vs. Java.NET har fokus på sprog-uafhængighed … Java har fokus på platforms-uafhængighed … Windows OS.NET CLR IL kode (.exe,.dll)
1 HMAK XMLRelationel model og XMLNOEA / PQC 2005 SQLServer og XML Hent data via URL Generering af xml –Raw –Auto –Explicit Hent data via template Evt.
Stig Irming-Pedersen ASP.NET MVC Partner Copenhagen Software.
BlueDoc 2.0 (C) 2003 TMA Components Web-integreret Intranet søgemaskine.
Videregående pc-vejledning Modul 06: Netværk WWW = World Wide Web 60+Bornholm.
HTML intro Dag 1. Client – Server miljø Client Server Klient ◦ Hardware (Screen size, colors, processor…) ◦ Platform (Mac, Windows, Linux…) ◦ Browser.
AJAX/Otto Knudsen 1 AJAX Motivation Definition. AJAX/Otto Knudsen 2 Motivation En typisk web-applikation er synkron klienten sender en forespørgsel og.
1..NET Arkitektur. Mål “Microsoft.NET is based on the Common Language Runtime (CLR) and an extensive set of Framework Class Libraries (FCL). The CLR defines.
Lektion 8 Programmeringsteknologi Efterår Velkommen Præsentation Programmet for denne lektion De næste gange Arbejdsformen Litteratur Web-programmering/ASP.NET.
Intro Evaluering De sidste to gange?. HTTP, cookies og sessions Forelæsning nr 10 Tilbage til trafikken mellem server – client Sende HTTP-request og respons.
Webserveren kan afvikle flere applikationer, der hver har deres eget selvstændige ”liv” og hukommelse. Den enkelte applikation består typisk af flere elementer.
1..NET Arkitektur. 2 Nordjyllands Erhvervakademi Mål “Microsoft.NET is based on the Common Language Runtime (CLR) and an extensive set of Framework.
Masterpages/Otto Knudsen 1 Navigation på webstedet Kontroller til navigation mellem siderne på webstedet.
IT i Byggeriet Semester kursusgang Introduktion til projektweb og html Kjeld Svidt Kjeld Svidt  Institut for Bygningsteknik.
Rapid Application Development med Application Express Aalborg Universitet, d. 19. september 2007 B e n t M ø l l e r M a d s e nB e n t M ø l l e r M a.
Internetteknologi (ITNET2) Kort teknisk ASP.NET introduktion Mandag den 19/ Jesper Tørresø.
Internetteknologi (ITNET2) Præsentation 20: ASP.NET Introduktion ”Med Active Server Pages (ASP)”
Fremstilling af Simple WEB steder [ITPL] Foråret 2004
IT i Byggeriet Semester kursusgang Introduktion til projektweb og html Kjeld Svidt Kjeld Svidt  Institut for Bygningsteknik  Aalborg.
Webserveren kan afvikle flere applikationer, der hver har deres eget selvstændige ”liv” og hukommelse. Den enkelte applikation består typisk af flere elementer.
Hvad består en distribueret applikation af ? Processer der kører på hver deres maskine Tråde - 1 eller flere "letvægtsprocesser" per proces Objekter i.
XML 2. Formatering af XML data med CSS Når man arbejder med XML og CSS er fremgangsmåden den samme som i forbindelse med HTML og CSS.
Intro Siden sidst: evaluering på opgaver og virtuel kursus.
Per P Madsen AAU1 Del 4 : Sessions-, presentations- og applikationslaget - Applikationsprotokoller. - RPC og RMI. - Digital audio og Voice over IP. - RTP.
ASP.NET – web site publish. ASP.NET – site-version.
Intro Evaluering De sidste to gange?. HTTP, cookies og sessions Forelæsning nr 10 Tilbage til trafikken mellem server – client Sende HTTP-request og respons.
Grundlæggende DW, HTML, CSS, udskæring.
Masterpages/Otto Knudsen 1 Temaer (Themes) Stylesheets til ASP.NET web-applikationer.
Client / Server teknologi Eksamensteori Anbefaling: Tag notater.
Kjeld Svidt  Institut for Byggeri og Anlæg  Aalborg Universitet IT i Byggeriet Semester kursusgang Introduktion til projektweb og html Kjeld.
OPERATIONEL ANALYSE AF WEBADFÆRD OAW – LEKTIONSGANG 4.
Web Services. OO (C++/ C#/Java) COM DCOM Web Services.
Kjeld Svidt  Institut for Byggeri og Anlæg  Aalborg Universitet IT i Byggeriet Semester kursusgang Projektweb og html (fortsat) Kjeld Svidt.
IT i Byggeriet Semester kursusgang Projektweb og html (fortsat) Kjeld Svidt Kjeld Svidt  Institut for Bygningsteknik  Aalborg.
1 | 2011 ASP.NET Framework i et webform/page perspektiv The Framework to a page.
ANALYSE AF WEBADFÆRD - OAW OAW – LEKTIONSGANG 4. ANALYSE AF WEBADFÆRD - OAW SUMMARY, LECTURE 3 (Extended) Common Log File Format Host, Ident, Authuser,
Programmering I Java/C# Datatekniker Dit første projekt.
Computerens talsystem
ISS webserver og web applikationer
Cloud Computing Model-View-Controller
Dokumentation.
Efter folkeskolen kan du i Danmark typisk vælge én af 2 ”retninger”
Præsentationens transcript:

Programmeringsteknologi ASP.NET Programmeringsteknologi The pure and simple truth is rarely pure and never simple." Oscar Wilde

Jens Houmann - Nordjyllands Erhvervsakademi Husmand/specialist Jens Houmann - Nordjyllands Erhvervsakademi

Interaktionsudvikling Hvad er mon dette? Den første tegning af Internettet Interaktionsudvikling

Internettets historie Interaktionsudvikling

Internettets historie Interaktionsudvikling

Internettets historie Interaktionsudvikling

Interaktionsudvikling Nogle begreber Hvad er Internettet? Hvad er WWW? Hvad er en browser? Hvad laver en server? Hvad er en URL? Hvad laver en DNS? Hvad er HTML? Hvad er en IP-adresse? Interaktionsudvikling

Interaktionsudvikling Hvad er internettet? Hvad kan det bruges til? Hvordan virker det? Hvor mange brugere og sites? Hvad kræves der for at komme på? Hvilke browsere anvendes? Interaktionsudvikling

Interaktionsudvikling Hvad kan det bruges til? Mail Informationssøgning Filoverførsel Chat Spil Ressourcedeling Overvågning E-handel Nyhedsgrupper Navigation (google maps) Interaktionsudvikling

Internettet – Interconnected Nets Et antal host forbundet ved hjælp af TCP/IP-protokollen. WWW World Wide Web FTP File Transfer SMTP Simple Mail Transfer HTTP HyperText Transfer SNMP Simple Network Management Interaktionsudvikling

Interaktionsudvikling World Wide Web Godt 18 tusinde i 1995 36.276.252 sites i december 2001 118,023,363 sites i august 2007 175,480,931 sites i august 2008 Mere end 20 millioner servere Det skønnes at der er 1,463,632,361 mio. brugere af internettet Kilde: http://www.internetworldstats.com/stats.htm Interaktionsudvikling

Hvem bruger internettet? Interaktionsudvikling

Hvilken browser anvendes i dag? Interaktionsudvikling

Interaktionsudvikling Og hvem er så det????? Sir Tim Berners-Lee – Udviklede HTML Sir Interaktionsudvikling

Interaktionsudvikling Og hvem er så det? Marc Andreessen – opfinder Mosaic-Browseren (facebook) Interaktionsudvikling

Interaktionsudvikling World Wide Web Grundlagt i 1989 af CERN med støtte fra NCSA. Sir Tim Berners-Lee lavede rygraden National Center for Supercomputer Applications lavede Mosaic-browseren. Bygger på det oprindelige Arpanet fra 1960-erne Anvender TCP/IP-protokollen med overliggende tjenester HTTP – Hyper Text Transfer Protocol Interaktionsudvikling

Interaktionsudvikling En URL URL: Uniform Ressource Locator http://www.olsen.dk/beskrivelser/index.html www: protokol olsen: Domænenavn dk: Domæne Danmark beskrivelser: sti til websider index.html: konkret dokument af typen HTML Interaktionsudvikling

En URL – søgt efter: Canon Interaktionsudvikling

Interaktionsudvikling World Wide Web W3C, World Wide Web Consortium sørger for standardisering gennem Recommandations Kan findes på www.w3c.org Kan validere html-dokumenter Interaktionsudvikling

Interaktionsudvikling HTML HyperText Markup Language Formatteringssprog til WWW-sider HyperText = tekst med links til andre steder i teksten f.eks. Windows Help-system Interaktionsudvikling

Eksempel på HyperTekst Interaktionsudvikling

Jens Houmann - Nordjyllands Erhvervsakademi Internettet funktion Jens Houmann - Nordjyllands Erhvervsakademi

Interaktionsudvikling HTML En HTML-fil er en tekstfil HTML-filen fortolkes af en browser Resultatet er et "grafisk billede” HTML er standardiseret HTML beskæftiger sig kun med hjemmesidens udseende Der findes mange udvidelser til HTML: JavaScript XML DHTML XHTML Interaktionsudvikling

Et simpelt dokument Bemærk indrykningen <html> <head> <title>Mit første HTML dokument</title> </head> <body> Hello World! </body> </html> Interaktionsudvikling

Interaktionsudvikling Resultat Interaktionsudvikling

Interaktionsudvikling HTML-filen En HTML-fil består af Tekst (indholdet), der vises i browseren Kontrolkoder (tags), der fortæller, hvordan teksten vises Et tag er altid på formen <x> efterfulgt af </x> <x> er start-tag, </x> er slut-tag Enkelte undtagelser: <BR /> Interaktionsudvikling

Resultat (<br> indsat) Interaktionsudvikling

Interaktionsudvikling Eksempel <HTML> <!-- Eksempel på et HTML-dokument --> <!– Lavet af Søren Sømand 2009.01.23 --> <HEAD> <TITLE>Internet and WWW How to Program - Welcome</TITLE> </HEAD> <BODY> <P>Welcome to Our Web Site!</P> </BODY> </HTML> Interaktionsudvikling

Interaktionsudvikling Resultatet Interaktionsudvikling

Jens Houmann - Nordjyllands Erhvervsakademi Litteratur til ASP.NET Beginning ASP.NET 3.5 in C# 2008 Matthew Mac Donald Apress ISBN 1-59059-891-1 ASP.NET Unleashed Stephen Walther Sams Publishing ISBN: 0-672-32542-x Beginning ASP.NET 2.0 With C# Chris Ullman et. Al. Wrox ISBN: 0-470-04258-3 Jens Houmann - Nordjyllands Erhvervsakademi

Jens Houmann - Nordjyllands Erhvervsakademi Indhold - overordnet Introduktion .Net arkitekturen ASP.NET siders anatomi Web og Web-forms Internet Information Server Forms og Server Controls Variable, datatyper og datastrukturer Kontrolstrukturer Objekter, klasser, metoder, Events ADO.NET, Datasæt og databinding Repeater, Datalist, Datagrid Læsning/skrivning af filer Læsning databaser Code-Behind og reusable code Systemudvikling Test Jens Houmann - Nordjyllands Erhvervsakademi

Jens Houmann - Nordjyllands Erhvervsakademi Lektionsplan – dag 1 Introduktion til Active Server Pages. Nogle væsentlige begreber Lidt Web-teori Internet Information Server Traditionel ASP .NET-arkitekturen ASP.NET – en sides opbygning Jens Houmann - Nordjyllands Erhvervsakademi

Jens Houmann - Nordjyllands Erhvervsakademi Hvad er ASP.Net Microsoft Framework – Active Server Pages Inkl: Server scripts Web Forms Web services 100% Objektorienteret med GUI Web controls som udvidelser til html Adskillelse af layout og virksomhedslogik Component-baseret udvikling Interaktivt design af hjemmesider Compileret kode, ikke oversat State-management Jens Houmann - Nordjyllands Erhvervsakademi

Jens Houmann - Nordjyllands Erhvervsakademi ASP.NET anvendelse Tællere til antal besøgende E-handelssider Databasetilgang/vedligehold Kalender-funktioner Brugerundersøgelser Nyhedsbreve Tilmelding til arrangementer Afsendelse af e-mail, SMS etc. Jens Houmann - Nordjyllands Erhvervsakademi

Jens Houmann - Nordjyllands Erhvervsakademi Web-udviklingen Bruger af Internettet Hjemmesider med information, links og farver Sites med tabeller, frames Brug af client-side scripting og Cascading Stylesheets Forms til indtastning af data Dynamiske sider til behandling af data (ASP, JSP) Platforms-uafhængig kode med code-behind og stored procedures. Web-services og Business objects Web 2.0, AJAX, SilverLight ????? Jens Houmann - Nordjyllands Erhvervsakademi

Web-løsning vs. Windows-løsning Angiv fordele og ulemper Jens Houmann - Nordjyllands Erhvervsakademi

Jens Houmann - Nordjyllands Erhvervsakademi Stateless Jens Houmann - Nordjyllands Erhvervsakademi

ASP – Active Server Pages Server side scripting-miljø lavet af Microsoft Kører mest almindeligt via Web-serveren Internet Information Services (IIS) Inkluderet i Win XP og Vista ASP anvendes når der er behov for dynamiske hjemmesider. ASP genererer HTML (dynamisk) – indhold ændrer sig afhængigt af det programmerede indhold af ASP-siden En ASP-side er ren tekst med kode som IIS behandler Jens Houmann - Nordjyllands Erhvervsakademi

ASP – Active Server Pages Siderne kan skrives i: Notepad HTML-Editor Stones Web-writer Frontpage Editor Dreamweaver etc. GoLive IDE (integrated developement environment) Web-matrix Visual Studio .Net Jens Houmann - Nordjyllands Erhvervsakademi

ASP – Active Server Pages Extension skal være: ASPX for .NET ASP for traditionel ASP IIS vil selv lede efter default.aspx (som regel) ASP er ikke i sig selv case-sensitive C# er case sensitive Kan give en uhyggelig blanding af Data, logik og præsentation. Jens Houmann - Nordjyllands Erhvervsakademi

Jens Houmann - Nordjyllands Erhvervsakademi Active Server Pages Kan afvikle scripts i: Visual Basic (VBScript) C# (See Sharp) Kode kan udvikles i ”alle” andre sprog: Java, Eifel, Cobol etc. Jens Houmann - Nordjyllands Erhvervsakademi

Første eksempel (trad. ASP) Eks1.asp <html> <head> <title>Min allerførste ASP-side</title> </head> <body> <h1Aalborg, februar 2009</h1> <br> Klokken er nu: <%=time%> <BR> <h2>Goodmorning Campers - This might be your lucky day!</h2> </body> </html> Se den her Jens Houmann - Nordjyllands Erhvervsakademi

Første eksempel (ASP.NET c#) <%@ Page Language="C#" %> <script runat="server"> void Page_Load(object Sender ,EventArgs E) { lblMessage.Text= "Velkommen til Kursus "; } </script> <html> <head> <title>Min allerførste ASP.NET-side</title> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> </head> <body> Aalborg, februar 2007 <br> <asp:label ID="lblMessage" Font-Size="20pt" runat=server/> <br> Goodmorning Campers - This might be your lucky day! </body> </html> Se eksemplet her Jens Houmann - Nordjyllands Erhvervsakademi

Virtuelle directories Jens Houmann - Nordjyllands Erhvervsakademi

Internet Information Services (IIS) IIS er Microsofts Web Server kører som en separat process "inetinfo.exe" kræver et server-like OS: Windows Vista, XP Pro multi-threaded for servicering af tusindvis af requests… client IIS client client Windows Server . Jens Houmann - Nordjyllands Erhvervsakademi

Jens Houmann - Nordjyllands Erhvervsakademi Web site IIS håndterer web sites Hvordan virker IIS? Hvert web-site har sin egen fysiske mappe på harddisken Hvert web-site tildeles et virtual name til denne mappe Brugere surfer til vores web-site vha. det givne virtual name Eksempel: web site lever i C:\Inetpub\wwwroot\WebSite web site's virtual name er "AAAPainting" IIS mapper det virtuelle til den fysiske… Jens Houmann - Nordjyllands Erhvervsakademi

Jens Houmann - Nordjyllands Erhvervsakademi Øvelse Prøv det ! - se også source/kilde i browseren. Jens Houmann - Nordjyllands Erhvervsakademi

Jens Houmann - Nordjyllands Erhvervsakademi Opgave 1 Lav eksempel 1 om til at modtage to felter: fornavn og efternavn. Når der trykkes på knappen skal der udskrives hele navnet. Se løsningen her Jens Houmann - Nordjyllands Erhvervsakademi

Jens Houmann - Nordjyllands Erhvervsakademi Repetition Hvad er forskellen på javascript og ASP.Net Hvad kan .Net? Hvad er Page_Load? Hvad betyder JIT? Hvad er servercontrols? Hvad hedder Microsofts webserver? Hvad er request og responseobjekter? Hvad betyder begrebet stateless? Hvad er en code-render-block? Hvad er et virtuelt directory? Jens Houmann - Nordjyllands Erhvervsakademi

Jens Houmann - Nordjyllands Erhvervsakademi Mål “Microsoft .NET is based on the Common Language Runtime (CLR) and an extensive set of Framework Class Libraries (FCL). The CLR defines a common programming model and a standard type system for cross-platform, multi-language development.” CLR-baseret eksekvering Applikationsdesign Komponent-baseret udvikling Jens Houmann - Nordjyllands Erhvervsakademi

.Net arkitektur .NET OOP JVM GUI Web component-based design n-tier design Jens Houmann - Nordjyllands Erhvervsakademi

.NET understøtter en række sprog .NET understøtter VB, C# (C-sharp), C++, J# (Java 1.1), Eiffel, etc. code.vb code.cs code.cpp ... FCL Development Tools FCL app.exe Jens Houmann - Nordjyllands Erhvervsakademi

.NET er “platformsuafhængigt” Kompilerede .NET applikationer kører på alle supporterede platforme: APP.exe ? Microsoft påstår multi-platform, underforstået forskellige versioner af Windows :-) Andre platforme? Januar 2003: Mono: open-source Linux port of .Net, beta, no GUI support. Rotor: MS has released the source to the standardized components of .Net, compiles on Windows, FreeBSD, and Mac OS X. 1.0 Release, no GUI support. Mono kan downloades from http://www.go-mono.com/ Rotor, officielt kendt som SSCLI, kan downloades fra http://msdn.microsoft.com/net/sscli Win64 Win32 (XP,2K,98) WinCE Jens Houmann - Nordjyllands Erhvervsakademi

CLR-baseret eksekvering .NET applikationer er ikke stand-alone .exe-programmer APP.exe OS Process CLR JIT Compiler other FCL components Core FCL obj code Underlying OS and HW Jens Houmann - Nordjyllands Erhvervsakademi

Jens Houmann - Nordjyllands Erhvervsakademi Applikationsdesign Mange applikationer designes med N "tiers" god separation af ansvar muliggør brug af samme back-end tiers til forskellige klienter object object Front-end object Presentation Business Data Access Data Jens Houmann - Nordjyllands Erhvervsakademi

Jens Houmann - Nordjyllands Erhvervsakademi Web app design Web app medfører at præsentationen genereres af en Web server Web server Web Page obj obj Browser obj ANY platform Server HTML / HTTP Fordele? skalerer til internet, udvider applikationens mulige målgruppe ingen firewall-problematik (HTTP / port 80 trafik) Ulemper? browser-baseret klient kan begrænse klientens kvalitet Til dels stateless Jens Houmann - Nordjyllands Erhvervsakademi

Jens Houmann - Nordjyllands Erhvervsakademi Specielt for ASP.NET Integreret del af .Net frameworket – 100% objektorienteret. Opblødt skel mellem klient og server Stadig stateless, men dog en forbedring. ASP.NET kode er kompileret og ikke fortolket. Valgfrihed mht. programmeringsprog. Flytbart Mulighed for at anvende/udvikle webservices. Objekter/metoder kan kaldes på tværs af sprog Der kan anvendes flere udgaver af samme program samtidig…. COM-objekter skal ikke registreres. Shopping charts og datascrolling indbygget Session-state gør det muligt at lave server-farme Jens Houmann - Nordjyllands Erhvervsakademi

Jens Houmann - Nordjyllands Erhvervsakademi Konvertering Variable skal defineres før de kan bruges Værdier der indtastes i formen er i string-format. For at kunne regne på indlæste værdier skal de konverteres til integer (eller float) For at kunne udskrive integers skal de konverteres til string. int intTal1; intTal1 = Convert.ToInt32(tbTal1.Text); lblResultat.Text = Convert.ToString(intResultat); Jens Houmann - Nordjyllands Erhvervsakademi

Jens Houmann - Nordjyllands Erhvervsakademi Opgave 2 Lav et ASP.NET program i C# der er i stand til at indlæse to tal og udskrive summen i en label. Programmet skal hedde Regne1.aspx Programmet skal være velstruktureret og med kommentarer. Se den vejledende løsning her. Jens Houmann - Nordjyllands Erhvervsakademi

Jens Houmann - Nordjyllands Erhvervsakademi Opgave 2 Jens Houmann - Nordjyllands Erhvervsakademi

Jens Houmann - Nordjyllands Erhvervsakademi Opgave 2 <%@ Page Language="C#" %> <script runat="server"> void Adder(object Sender ,EventArgs E) { // Der defineres tre variable af typen integer int intTal1, intTal2, intResultat; // De indlæste værdier konverteres fra tekst til integer intTal1 = Convert.ToInt32(tbTal1.Text); intTal2 = Convert.ToInt32(tbTal2.Text); // Det to tal adderes og lægges i intResultat intResultat = intTal1 + intTal2; // Resultatet konverteres til tekst (string) lblResultat.Text = Convert.ToString(intResultat); } </script> <hr><html> <head><title>Addition af to tal</title></head> <body> <font size="5">Additionsfætteren!</font> <hr> <form runat="server"> Indtast et tal: <asp:textbox id="tbTal1" runat=server/> Indtast et andet tal: <asp:textbox id="tbTal2" runat=server/> <asp:button ID="btSubmit" Text="Adder" OnClick="Adder" runat=server/><br><br> Summen af de to tal du tastede var: <asp:label ID="lblResultat" Font-Size="20pt" runat=server/> </form> </body> </html> Jens Houmann - Nordjyllands Erhvervsakademi

Jens Houmann - Nordjyllands Erhvervsakademi Vigtigt Postback en form sendes tilbage til sig selv med oprindeligt indhold. ViewState Serveren holder styr på indholdet i de udfyldte felter Agenter på clienten sørger for at server får besked når en hændelse indtræffer. (ændring) Ved reload får man den samme side igen Runat = ”Server” Fortæller serveren at den skal styre afviklingen Må ikke undlades <ASP:Textbox osv Kaldes en web-server control Kan afsluttes i samme tag: <ASP:Textbox…../> Scripts kan placeres hvor som helst i koden, dog pænest i begyndelsen. Id=”XXX” Anvendes til senere reference Kan dog undværes i nogle tilfælde Jens Houmann - Nordjyllands Erhvervsakademi

Jens Houmann - Nordjyllands Erhvervsakademi Vigtigt <%Response.Write(”Hello”)%> Kaldes en code render block Afvikles inden output sendes til browseren <%=”Hello”%> er en genvej Code render blocks omsættes ikke til MSIL. Code render blocks bliver fortolket Kan give sjove ting i output. Undgå disse, da det blander layout og logik. <%@Page Language=”C#” %> Page direktiv skal placeres først i koden Jens Houmann - Nordjyllands Erhvervsakademi

Jens Houmann - Nordjyllands Erhvervsakademi Vigtigt Managed Code Er kode som CLR holder øje med Hvis koden er ændret vil den kompile igen Første gang er der en lille forsinkelse Viewstate Hvordan ser tingene ud lige nu? Gemmes i hidden files (ren html) Jens Houmann - Nordjyllands Erhvervsakademi

Jens Houmann - Nordjyllands Erhvervsakademi ViewState Jens Houmann - Nordjyllands Erhvervsakademi

Jens Houmann - Nordjyllands Erhvervsakademi Workflow Jens Houmann - Nordjyllands Erhvervsakademi

Jens Houmann - Nordjyllands Erhvervsakademi Opret alias på iistest Gå ind på: http://iistest.noea.dk Vælg: bliv oprettet Husk at læse reglerne og krydse af. Alias bliver oprettet til næste gang Hjemmefra kan I så skrive: http://iistest.noea.dk/mitalias Jens Houmann - Nordjyllands Erhvervsakademi

Lidt programmeringsteknik Kommentarer: <!–- Kommentar --> HTML ’Kommentar Visual Basic //Kommentar C# /* Denne kommentar er delt Over flere linier */ C# <%--Kommentar--%> Serverside Deling over flere linier <% Response.Write _ (”Hej”) %> Jens Houmann - Nordjyllands Erhvervsakademi

Automatisk overførsel via FTP Lav en bat-fil med følgende indhold: @echo off Echo FTP er begyndt ftp -s:commando.txt iistest.noea.dk Pause Gem filen med navnet: SendHTML.BAT Det er vigtigt at extension er BAT Placér evt. på skrivebordet Jens Houmann - Nordjyllands Erhvervsakademi

Automatisk overførsel med FTP Lav en tekstfil med følgende indhold: mitbrugernavn hemmeligtpwd cd minmappe ls put *.* Bye Filen gemmes med navnet commando.txt Jens Houmann - Nordjyllands Erhvervsakademi

Automatisk overførsel med FTP Jens Houmann - Nordjyllands Erhvervsakademi

Jens Houmann - Nordjyllands Erhvervsakademi Variable OH side 2 og 3 Jens Houmann - Nordjyllands Erhvervsakademi

Definition og Tildeling af variable <script runat="server"> void Beregn(object Sender ,EventArgs E) { int intTal1 = 4711; float fltTal2 = 234.45f; double dblTal3 = 123456897879.01298767534501; long lngTal4 = -1234567890123456789; lblResultat1.Text = Convert.ToString(intTal1); lblResultat2.Text = Convert.ToString(fltTal2); lblResultat3.Text = Convert.ToString(dblTal3); lblResultat4.Text = Convert.ToString(lngTal4); } </script> variable.aspx Jens Houmann - Nordjyllands Erhvervsakademi

Ternary – en rigtig nørd-ting Jens Houmann - Nordjyllands Erhvervsakademi

Ternary – en rigtig nørd-ting <%@ Page Language="C#" %> <script runat="server"> void UdskrivAntal(object Sender ,EventArgs E) { int intAntal = Convert.ToInt32(tbAntal.Text); lblResultat.Text = "Du bestilte:" + intAntal + " Pizza" + (intAntal != 1 ? "'er" : "") + " fra web-siden!"; } </script> <hr> <html> <head> <title>Ternary Operator</title> </head> <body> <font size="5">Ternary Operator!</font> <form runat="server"> Indtast antal pizza'er: <asp:textbox id="tbAntal" runat=server/> <asp:button ID="btSubmit" Text="UdskrivAntal" OnClick="UdskrivAntal" runat=server/><br><br> <asp:label ID="lblResultat" Font-Size="20pt" runat=server/> </form> </body> </html> Jens Houmann - Nordjyllands Erhvervsakademi

Jens Houmann - Nordjyllands Erhvervsakademi Opgave Lav en regnemaskine der kan indlæse to tal og en regningsart (+ eller -) og udføre den pågældende beregning. Regningsarten skal indlæses fra en tekstboks. Jens Houmann - Nordjyllands Erhvervsakademi

Afrunding af decimaler double dblTal = Convert.ToDouble(”123.45678”); dblTal = Math.Round(dblTal,2); Vil udskrive værdien: 123.45 Jens Houmann - Nordjyllands Erhvervsakademi

Jens Houmann - Nordjyllands Erhvervsakademi Opgave Jens Houmann - Nordjyllands Erhvervsakademi

Vejledende løsning - reduceret Se den vejledende løsning her Jens Houmann - Nordjyllands Erhvervsakademi

Vejledende løsning -reduceret REGNE3.ASPX Se den vejledende løsning her Jens Houmann - Nordjyllands Erhvervsakademi

Jens Houmann - Nordjyllands Erhvervsakademi Vejledende løsning Jens Houmann - Nordjyllands Erhvervsakademi

Jens Houmann - Nordjyllands Erhvervsakademi Opgave Lav en regnemaskine der kan modtage to tal og en regneart (+ - * eller /) Og udføre den korrekte beregning. Ekstra: Hvis ikke regnearten er en af ovenstående gives en fejlmeddelelse. Jens Houmann - Nordjyllands Erhvervsakademi

Vejledende løsning - Husmand Se løsningen her: Jens Houmann - Nordjyllands Erhvervsakademi

Vejledende løsning - korrekt Se løsningen her: Jens Houmann - Nordjyllands Erhvervsakademi

Jens Houmann - Nordjyllands Erhvervsakademi Switch Kan erstatte en if..sætning Anvendes når der er mange, entydige muligheder. Anvendes når if-sætningen ville blive for snørklet. Statement kan være en Integer Char String Bool Værdien efter hver case, skal være en konstant Både case og default skal eksplicit forlades med break Ved break fortsættes ved sætningen efter switch’en Jens Houmann - Nordjyllands Erhvervsakademi

Jens Houmann - Nordjyllands Erhvervsakademi Switch switch (statement) { case option1: // Do something; break; case option2: // Do something else default: // Do something } Jens Houmann - Nordjyllands Erhvervsakademi

Jens Houmann - Nordjyllands Erhvervsakademi Switch - eksempel switch (strValuta) { case ”Euro”: fltKurs= 7.43; break; case ”Dollar”: fltKurs= 6.32; default: fltKurs = 100; } Jens Houmann - Nordjyllands Erhvervsakademi

Jens Houmann - Nordjyllands Erhvervsakademi Switch – eksempel (or) switch (Confirmation) { case ”y”: case ”yes”: case ”Yes”: case ”YES”: case ”Y”: Message.Text = ”Vi fremsender brochurer!”; break; } Jens Houmann - Nordjyllands Erhvervsakademi

Jens Houmann - Nordjyllands Erhvervsakademi Switch –eksempel (or) switch (Confirmation.ToLower()) { case ”y”: case ”yes”: Message.Text = ”Vi sender brochurer!”; break; } Jens Houmann - Nordjyllands Erhvervsakademi

Switch – anvendt på regnemaskine void Beregn(object Sender ,EventArgs E) { float Tal1, Tal2, Resultat; Tal1 = Convert.ToSingle(tbTal1.Text); Tal2 = Convert.ToSingle(tbTal2.Text); lblFejl.Text = ""; switch (tbRegneart.Text) case "+": Resultat = Tal1 + Tal2; break; case "-": Resultat = Tal1 - Tal2; case "*": Resultat = Tal1 * Tal2; case "/": Resultat = Tal1 / Tal2; default: Resultat = 0; lblFejl.Text = "Regnearten er ikke gyldig"; } lblResultat.Text = Resultat.ToString(); Jens Houmann - Nordjyllands Erhvervsakademi

Jens Houmann - Nordjyllands Erhvervsakademi Afleveringsopgave Valutaberegner.aspx Jens Houmann - Nordjyllands Erhvervsakademi

Jens Houmann - Nordjyllands Erhvervsakademi Kontrolstrukturer Sekvens Selektion Iteration Jens Houmann - Nordjyllands Erhvervsakademi

Jens Houmann - Nordjyllands Erhvervsakademi Looping Tredje kontrolstruktur: iteration 4 muligheder: For Do..while While Foreach ..in Loop anvendes til at udføre en given sætning/sætningsblok: et givent antal gange Indtil en betingelse er opfyldt Jens Houmann - Nordjyllands Erhvervsakademi

Jens Houmann - Nordjyllands Erhvervsakademi Looping - for For anvendes når antallet af gennemkørsler er kendt. for (initiering; hvor længe ; efter hvert gennemløb) { // Do something; } for (int intTal= 0; intTal <= 100; intTal++) lblUdTekst.Text += ”Max Bjævermose<br>”; Jens Houmann - Nordjyllands Erhvervsakademi

Jens Houmann - Nordjyllands Erhvervsakademi Looping - for For…. void Udskriv(object Sender ,EventArgs E) { int intTal = 0; lblResultat.Text ="<br>"; for (intTal = 0; intTal <=10; intTal++) lblResultat.Text += "intTal er nu: " + intTal.ToString() + "<br>"; } For.aspx Jens Houmann - Nordjyllands Erhvervsakademi

Jens Houmann - Nordjyllands Erhvervsakademi Opgave Lav et asp.net program der er i stand til at udskrive alle lige tal mellem 0 og 100 på skærmen. Programmet skal hedde ligetal.aspx Jens Houmann - Nordjyllands Erhvervsakademi

Jens Houmann - Nordjyllands Erhvervsakademi LigeTal.aspx <%@ Page Language="C#" %> <script runat="server"> void Udskriv(object Sender, EventArgs E) { int intTal = 0; lblResultat.Text =""; for (intTal = 2; intTal <100; intTal= intTal + 2) lblResultat.Text += Convert.ToString(intTal) + "<BR>"; } </script> <html> <head> <title>Skriv de lige tal fra 0 -> 100</title> </head> <body> <form runat="server"> <asp:button ID="SkrivUd" runat="server" Text="Skriv Tal!" OnClick="Udskriv" /><br> <br>Og her kommer tallene <BR> <asp:label ID="lblResultat" Font-Size="20pt" runat="server" /> </form> </body> </html> Jens Houmann - Nordjyllands Erhvervsakademi

LigeTal.aspx – vejledende løsning Jens Houmann - Nordjyllands Erhvervsakademi

Jens Houmann - Nordjyllands Erhvervsakademi LigeTal2.aspx <%@ Page Language="C#" %> <script runat="server"> void Page_Load(object Sender, EventArgs E) { int intTal = 0; lblResultat.Text =""; for (intTal = 2; intTal <100; intTal= intTal + 2) lblResultat.Text += Convert.ToString(intTal) + "<BR>"; } </script> <html> <head> <title>Skriv de lige tal fra 0 -> 100</title> </head> <body> <h1>Og her kommer så tallene</h1> <asp:label ID="lblResultat" Font-Size="20pt" runat="server" /> </body> </html> Jens Houmann - Nordjyllands Erhvervsakademi

Jens Houmann - Nordjyllands Erhvervsakademi LigeTal2.aspx Jens Houmann - Nordjyllands Erhvervsakademi

Jens Houmann - Nordjyllands Erhvervsakademi Looping - while <%@ Page Language="C#" %> <script runat="server"> void Udskriv(object Sender, EventArgs E) { int intTal = 0; while (intTal < 10) lblResultat.Text += Convert.ToString(intTal) + "<BR>"; intTal +=1; } </script> <html> <head> <title>Skriv Tallene fra 1-10</title> </head> <body> <form runat="server"> <asp:button ID="SkrivUd" runat="server" Text="Skriv Tal!" OnClick="Udskriv" /><br> <br>Og her kommer tallene <BR> <asp:label ID="lblResultat" Font-Size="20pt" runat="server" /> </form> </body> </html> Jens Houmann - Nordjyllands Erhvervsakademi

Jens Houmann - Nordjyllands Erhvervsakademi Looping – do..while <script runat="server"> void Udskriv(object Sender, EventArgs E) { int intTal = 0; do lblResultat.Text += Convert.ToString(intTal) + "<BR>"; intTal +=1; } while (intTal < 10); } </script> <html> <head> <title>Skriv Tallene fra 1-10</title> </head> <body> <form runat="server"> <asp:button ID="SkrivUd" runat="server" Text="Skriv Tal!" OnClick="Udskriv" /><br> <br>Og her kommer tallene <BR> <asp:label ID="lblResultat" Font-Size="20pt" runat="server" /> </form> Jens Houmann - Nordjyllands Erhvervsakademi

Jens Houmann - Nordjyllands Erhvervsakademi Opgave Lav et program: Optil.aspx der indlæser et tal og udskriver alle lige tal op til og med det indtastede. Eks: der indtastes 10 der udskrives: 2,4,6,8,10 NB: 0 defineres som et positivt tal. Udarbejd programmet med for, while, do..while Jens Houmann - Nordjyllands Erhvervsakademi

Jens Houmann - Nordjyllands Erhvervsakademi Opgave Jens Houmann - Nordjyllands Erhvervsakademi

Jens Houmann - Nordjyllands Erhvervsakademi Opgave Se den vejledende løsning her: Jens Houmann - Nordjyllands Erhvervsakademi

Jens Houmann - Nordjyllands Erhvervsakademi Optil.aspx <%@ Page Language="C#" %> <script runat="server"> void Udskriv(object Sender, EventArgs E) { int intTal = 0; int intOpTil; intOpTil = Convert.ToInt16(tbTalInd.Text); lblResultat.Text =""; while (intTal <= intOpTil) lblResultat.Text += Convert.ToString(intTal) + "<BR>"; intTal +=2; } </script> <html> <head> <title>Skriv de lige tal fra 1-n</title> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> </head> <body> <form runat="server"> <asp:textbox ID="tbTalInd" runat="server" /> <br><br> <asp:button ID="SkrivUd" runat="server" Text="Skriv Tal!" OnClick="Udskriv" /><br> <br>Og her kommer tallene <BR> <asp:label ID="lblResultat" Font-Size="20pt" runat="server" /> </form> </body> </html> Jens Houmann - Nordjyllands Erhvervsakademi

Jens Houmann - Nordjyllands Erhvervsakademi At holde øje med fejl! Lav en fil med navnet: web.config med følgende indhold: <configuration> <system.web> <customErrors mode="Off"/> </system.web> </configuration> Placér filen i roden af hjemmekataloget Nu vil serveren vise fejlen og linienummeret. Jens Houmann - Nordjyllands Erhvervsakademi

Function, metoder, subrutiner <return type> <function name> (<optional parameters>) { // code } Eksempel: string minFunction() return ”Hej fra en function”; …. lblMinLabel.Text = minFunction(); Jens Houmann - Nordjyllands Erhvervsakademi

Jens Houmann - Nordjyllands Erhvervsakademi Function <%@ Page Language="C#" %> <script runat="server"> void Page_Load(Object Sender, EventArgs e) { MultiplyNumbers(8,9); MultiplyNumbers(4,12); MultiplyNumbers(348,23); } void MultiplyNumbers(int intA, int intB) Response.Write(intA * intB + "<br>"); </script> <html> <body> </body> </html> Jens Houmann - Nordjyllands Erhvervsakademi

Funktioner - functions <%@ Page Language="C#" debug = true %> <script runat="server"> int Kvadrat(int intTal) { return intTal * intTal; } void Beregn(Object Sender, EventArgs E) int IntVaerdi = 0; Response.Write(Kvadrat(4) + "<br>"); Response.Write(Kvadrat(16) + "<br>"); </script> <html><body> <form runat="server"> <asp:button OnClick="Beregn" Text="Tryk Her!" runat="server" /> </form> </body></html> Jens Houmann - Nordjyllands Erhvervsakademi

Jens Houmann - Nordjyllands Erhvervsakademi Opgave Lav et program: Moms.aspx, der indlæser et beløb (evt. med 2 decimaler)og ved et tryk på en knap, adderer 25% moms til beløbet og udskriver dette. Beregningen skal foretages i en function. Jens Houmann - Nordjyllands Erhvervsakademi

Jens Houmann - Nordjyllands Erhvervsakademi Moms.aspx Se den vejledende løsning her Jens Houmann - Nordjyllands Erhvervsakademi

Jens Houmann - Nordjyllands Erhvervsakademi Web-Server Controls RadioButton Button CheckBox ListBox TextBox Label Calendar M.fl. Jens Houmann - Nordjyllands Erhvervsakademi

Jens Houmann - Nordjyllands Erhvervsakademi Radiobutton Skal placeres i en <form runat=”server”> Består af en radiobuttonlist og et antal listitem <asp:radiobuttonlist id=”Koen" runat="server"> <asp:listitem>Mand</asp:listitem> <asp:listitem>Kvinde</asp:listitem> </asp:radiobuttonlist> Jens Houmann - Nordjyllands Erhvervsakademi

Jens Houmann - Nordjyllands Erhvervsakademi Kønsbestemmelse <script Language="C#" Runat="server"> void UdskrivKoen(object Sender, EventArgs e) { if (rbKoen.SelectedItem.Value == "Mand") lblTekst.Text = "Du er en mand!"; } else lblTekst.Text = "Du er en kvinde!"; </script> <body> <form Runat="server"> <p>Angiv køn:</p> <asp:RadioButtonList runat="server" ID="rbKoen"> <asp:ListItem Selected="true">Mand</asp:ListItem> <asp:ListItem>Kvinde</asp:ListItem> </asp:RadioButtonList> <asp:Button runat="server" OnClick="UdskrivKoen" Text="Tryk her!"></asp:Button><br> <asp:Label runat="server" ID="lblTekst"></asp:Label> </form> Jens Houmann - Nordjyllands Erhvervsakademi

Kønsbestemmelse – Radiobutton1.aspx Jens Houmann - Nordjyllands Erhvervsakademi

Kønsbestemmelse med autopostback radiobutton2.aspx <%@ Page Language="C#" ContentType="text/html" %> <html> <head> <script Language="C#" Runat="server"> void UdskrivKoen(object Sender, EventArgs e) { if (rbKoen.SelectedItem.Value == "Mand") lblTekst.Text = "Du er en mand!"; } else lblTekst.Text = "Du er en kvinde!"; </script> </head> <body> <form Runat="server"> <p>Angiv køn:</p> <asp:RadioButtonList OnSelectedIndexChanged="UdskrivKoen" AutoPostBack="true" runat="server" ID="rbKoen"> <asp:ListItem Selected="true">Mand</asp:ListItem> <asp:ListItem>Kvinde</asp:ListItem> </asp:RadioButtonList> <asp:Button runat="server" OnClick="UdskrivKoen" Text="Tryk her!"></asp:Button><br> <br> <asp:Label runat="server" ID="lblTekst"></asp:Label> </form> </body> </html> Jens Houmann - Nordjyllands Erhvervsakademi

Jens Houmann - Nordjyllands Erhvervsakademi Radiobuttons <script language="C#" runat="server"> void Page_Load() { if (Page.IsPostBack) { switch(Destination.SelectedItem.Value) case "Barcelona": Message.Text = "You selected Spain's lively Catalan city"; break; case "Oslo": Message.Text = "Experience the majesty of Norway's capital city"; case "Lisbon": Message.Text = "Portugal's famous seaport and cultural hub"; default: Message.Text = "you did not select a destination we travel to"; } </script> <html> <head></head> <body> <form runat="server"> Select your choice of destination: <br><br> <asp:radiobuttonlist id="Destination" runat="server"> <asp:listitem>Barcelona</asp:listitem> <asp:listitem>Oslo</asp:listitem> <asp:listitem>Lisbon</asp:listitem> </asp:radiobuttonlist> <input type="submit" value="Submit Choice"> <asp:label id="Message" runat="server"/> </form> </body> </html> Jens Houmann - Nordjyllands Erhvervsakademi

Jens Houmann - Nordjyllands Erhvervsakademi Radiobuttons Jens Houmann - Nordjyllands Erhvervsakademi

Jens Houmann - Nordjyllands Erhvervsakademi Radio Buttons <%@ Page Language="C#" ContentType="text/html" ResponseEncoding="Unicode" %> <html> <head> <script Language="C#" Runat="server"> void RadioChanged(object sender, EventArgs e) { label.Text = "Method of payment: "; if (cash.Checked) label.Text += cash.Text; if (cheque.Checked) label.Text += cheque.Text; if (card.Checked) label.Text += card.Text; } </script> </head> <body> <form Runat="server"> <p>Select method of payment:</p> <asp:RadioButton ID="cash" Text="cash" GroupName="payment" OnCheckedChanged="RadioChanged" AutoPostBack="true" Runat="server" /><br> <asp:RadioButton ID="cheque" Text="cheque" GroupName="payment" <asp:RadioButton ID="card" Text="credit card" GroupName="payment" Runat="server" /><br><br> <asp:Label ID="label" Runat="server" /> </form> </body> </html> Jens Houmann - Nordjyllands Erhvervsakademi

Jens Houmann - Nordjyllands Erhvervsakademi Radio Buttons Jens Houmann - Nordjyllands Erhvervsakademi

Jens Houmann - Nordjyllands Erhvervsakademi Radiobuttons <%@ Page Language="C#" ContentType="text/html" ResponseEncoding="Unicode" %> <html> <head> <script Language="C#" Runat="server"> void RadioChanged(object sender, EventArgs e) { label.Text = "Method of payment: "; if (cash.Checked) label.Text += cash.Text; if (cheque.Checked) label.Text += cheque.Text; if (card.Checked) label.Text += card.Text; } </script> </head> <body> <form Runat="server"> <p>Select method of payment:</p> <asp:RadioButton ID="cash" Text="cash" GroupName="payment" OnCheckedChanged="RadioChanged" AutoPostBack="true" Runat="server" /><br> <asp:RadioButton ID="cheque" Text="cheque" GroupName="payment" <asp:RadioButton ID="card" Text="credit card" GroupName="payment" Runat="server" /><br><br> <asp:Label ID="label" Runat="server" /> </form> </body> </html> Jens Houmann - Nordjyllands Erhvervsakademi

Jens Houmann - Nordjyllands Erhvervsakademi Radiobutton Jens Houmann - Nordjyllands Erhvervsakademi

Random – tilfældige tal void FindTilfTal(object Sender ,EventArgs E) { int intTal = 0; Random Randomobj = new Random(); // definition af randomobjekt intTal = Randomobj.Next(1,501); // returnerer et tilfældigt tal mellem 1-500 lblMessage.Text=Convert.ToString(intTal); } Jens Houmann - Nordjyllands Erhvervsakademi

Jens Houmann - Nordjyllands Erhvervsakademi Opgave Lav et program: tilf_tal.aspx der simulerer 6 terningkast og skriver disse på skærmen. Jens Houmann - Nordjyllands Erhvervsakademi

Jens Houmann - Nordjyllands Erhvervsakademi Vejledende løsning void FindTilfTal(object Sender ,EventArgs E) { int intTal = 0; lblMessage.Text = "<br>"; Random Randomobj = new Random(); // definintion af et randomobjekt for (int intTaeller = 0; intTaeller < 6; intTaeller++) intTal = Randomobj.Next(1,7); // returnerer et tilfældigt tal mellem 1-6 lblMessage.Text+= intTal.ToString() + "<br>"; } Jens Houmann - Nordjyllands Erhvervsakademi

Jens Houmann - Nordjyllands Erhvervsakademi Øvelse Undersøg hvad programmet function.aspx gør Læg især vægt på: CheckOutDate = DateTime.Now; return CheckOutDate + TimeSpan.FromDays(14); DateTime FindDueDate(DateTime CheckOutDate) Jens Houmann - Nordjyllands Erhvervsakademi

Jens Houmann - Nordjyllands Erhvervsakademi Function <script Language="c#" runat="server"> void Page_Load() { DateTime DueDate; DateTime CheckOutDate; CheckOutDate = DateTime.Now; DueDate = FindDueDate(CheckOutDate); message1.Text = "<br>Your books were checked OUT on " + CheckOutDate; message2.Text = "<br>Your books are due on " + DueDate.ToString("d"); } DateTime FindDueDate(DateTime CheckOutDate) return CheckOutDate + TimeSpan.FromDays(14); </script> <html> <head> <title>Sample Function Page</title> </head> <body> <h2>Thank you for using the On-Line Library.</h2> <asp:label id="message1" runat="server"/> <asp:label id="message2" runat="server"/> Jens Houmann - Nordjyllands Erhvervsakademi

Jens Houmann - Nordjyllands Erhvervsakademi Function Jens Houmann - Nordjyllands Erhvervsakademi

Jens Houmann - Nordjyllands Erhvervsakademi Opgave – oversaet.aspx Lav et program der er i stand til at modtage et varegruppenr mellem 1-3, og derefter udskrive en varegruppebetegnelse på det valgte sprog. Hvis varegruppe er ugyldig gives fejlmeddelelse. Sproget kan være: dansk, engelsk eller tysk. Sproget vælges med en radiobutton. Varegrupperne ses på næste side: Jens Houmann - Nordjyllands Erhvervsakademi

Jens Houmann - Nordjyllands Erhvervsakademi Opgave oversaet.aspx Gruppenr Dansk Engelsk Tysk 1 Cykler Bicycles Fahrräder 2 Biler Cars Autos 3 Svampe Mushrooms Piltzen Jens Houmann - Nordjyllands Erhvervsakademi

Jens Houmann - Nordjyllands Erhvervsakademi Opgave oversaet.aspx Jens Houmann - Nordjyllands Erhvervsakademi

Jens Houmann - Nordjyllands Erhvervsakademi Opgave oversaet.aspx Se den vejledende løsning her Jens Houmann - Nordjyllands Erhvervsakademi

Jens Houmann - Nordjyllands Erhvervsakademi If-øvelse Hvad vil der stå på skærmen efter følgende program er afviklet? <%@ Page Language="C#" debug = true %> <script runat="server"> void Beregn(Object Sender, EventArgs E) { lblResultat.Text =""; int TalA, TalB, TalC; bool Sand1 = false; TalA = 5; TalB = 0; TalC = -5; if (TalA > TalB) lblResultat.Text += "A "; } if (TalA >= 0 && TalB <1) lblResultat.Text += "B "; if (TalB == 0 && TalC >0 || TalA >10) lblResultat.Text += "C "; if (!Sand1) lblResultat.Text += "D "; </script> <html><body> <form runat="server"> <asp:button OnClick="Beregn" Text="Gør noget!" BackColor="#3366FF" runat="server" /><br><br> Resultatet er: <asp:label ID="lblResultat" runat="server" Text="Betingelsesberegner!" /> </form> </body></html> Jens Houmann - Nordjyllands Erhvervsakademi

Jens Houmann - Nordjyllands Erhvervsakademi If-øvelse Jens Houmann - Nordjyllands Erhvervsakademi

Jens Houmann - Nordjyllands Erhvervsakademi Porto Lav et program der indlæser et brevs vægt i gram og udskriver korrekt porto ud fra følgende tabel: Jens Houmann - Nordjyllands Erhvervsakademi

Jens Houmann - Nordjyllands Erhvervsakademi Porto Jens Houmann - Nordjyllands Erhvervsakademi

Jens Houmann - Nordjyllands Erhvervsakademi Porto Se koden her Se det køre her Jens Houmann - Nordjyllands Erhvervsakademi

Jens Houmann - Nordjyllands Erhvervsakademi Command <%@ Page Language="C#" %> <html> <head> <script Language="C#" Runat="server"> void ButtonClick(object sender, CommandEventArgs e) { text.ForeColor = System.Drawing.Color.FromName(e.CommandName); } </script> </head> <body> <form Runat="server"> <asp:Label ID="text" Text="Sample text" Runat="server" /><br><br> <asp:Button Text="Red" CommandName="Red" OnCommand="ButtonClick" Runat="server" /> <asp:Button Text="Blue" CommandName="Blue" OnCommand="ButtonClick" Runat="server" /> <asp:Button Text="Green" CommandName="Green" OnCommand="ButtonClick" Runat="server" /> </form> </body> </html> Jens Houmann - Nordjyllands Erhvervsakademi

Jens Houmann - Nordjyllands Erhvervsakademi Command Jens Houmann - Nordjyllands Erhvervsakademi

Jens Houmann - Nordjyllands Erhvervsakademi TextBox - MultiLine Jens Houmann - Nordjyllands Erhvervsakademi

Jens Houmann - Nordjyllands Erhvervsakademi TextBox - MultiLine <%@ Page Language="C#" %> <html> <head> <script Language="C#" Runat="server"> void HandleText(object sender, EventArgs e) { lblLabel1.Text = "TextMode=" + tbBox.TextMode + ", Rows=" + tbBox.Rows + ", Columns=" + tbBox.Columns + ", Wrap=" + tbBox.Wrap; lblLabel2.Text = tbBox.Text; } </script> </head> <body> <form Runat="server"> <asp:TextBox ID="tbBox" TextMode="MultiLine" Rows="3" Columns="15" OnTextChanged="HandleText" AutoPostBack="true" Runat="server" /> </form> Oplysninger om tekstboksen: <asp:Label ID="lblLabel1" Runat="server" /><br> Den indtastede tekst var: <asp:Label runat="server" ID="lblLabel2"></asp:Label> </body> </html> Jens Houmann - Nordjyllands Erhvervsakademi

Jens Houmann - Nordjyllands Erhvervsakademi CheckBox Jens Houmann - Nordjyllands Erhvervsakademi

Jens Houmann - Nordjyllands Erhvervsakademi CheckBox <%@ Page Language="C#" ContentType="text/html" ResponseEncoding="Unicode" %> <html> <head> <script Language="C#" Runat="server"> void ButtonClicked(object sender, EventArgs e) { label.Text = "You bought: "; if (apples.Checked) label.Text += "Apples "; if (pears.Checked) label.Text += "Pears "; if (bananas.Checked) label.Text += "Bananas "; } </script> </head> <body> <form Runat="server"> <asp:CheckBox ID="apples" Text="Apples" Runat="server" /><br> <asp:CheckBox ID="pears" Text="Pears" Runat="server" /><br> <asp:CheckBox ID="bananas" Text="Bananas" Runat="server" /><br> <asp:Button Text="Buy" OnClick="ButtonClicked" Runat="server" /> <br><br> <asp:Label ID="label" Runat="server" /> </form> </body> </html> Jens Houmann - Nordjyllands Erhvervsakademi

Jens Houmann - Nordjyllands Erhvervsakademi CheckBox Jens Houmann - Nordjyllands Erhvervsakademi

Jens Houmann - Nordjyllands Erhvervsakademi CheckBox <script runat="server" language="C#"> void Page_Load() { string msg = "You have selected the following items:<br />"; if (check1.Items[0].Selected) { msg = msg + check1.Items[0].Text + "<br />"; } if (check1.Items[1].Selected) { msg = msg + check1.Items[1].Text + "<br />"; if (check1.Items[2].Selected) { msg = msg + check1.Items[2].Text + "<br />"; Message.Text = msg; </script> <html> <head> <title>Check Box List Example</title> </head> <body> <asp:label id="Message" runat="server" /> <br /><br /> Which city do you wish to look at hotels for? <form runat="server"> <asp:checkboxlist id="check1" runat="server"> <asp:listitem id="option1" runat="server" value="Madrid" /> <asp:listitem id="option2" runat="server" value="Oslo" /> <asp:listitem id="option3" runat="server" value="Lisbon" /> </asp:checkboxlist> <input type="Submit"> </form> </body> </html> Jens Houmann - Nordjyllands Erhvervsakademi

Jens Houmann - Nordjyllands Erhvervsakademi ListBox Jens Houmann - Nordjyllands Erhvervsakademi

Jens Houmann - Nordjyllands Erhvervsakademi ListBox <%@ Page Language="C#" ContentType="text/html" ResponseEncoding="Unicode" %> <html> <head> <script Language="C#" Runat="server"> void ButtonClick(object sender, EventArgs e) { lab.Text = "The selected country has the international car code "; if (list.SelectedItem != null) lab.Text += list.SelectedItem.Value; } </script> </head> <body> <form Runat="server"> <asp:ListBox ID="list" Rows="3" Runat="server" > <asp:ListItem Text="United States" Value="USA" Runat="server" /> <asp:ListItem Text="Great Britain" Value="GB" Runat="server" /> <asp:ListItem Text="Germany" Value="D" Runat="server" /> <asp:ListItem Text="France" Value="F" Runat="server" /> <asp:ListItem Text="Italy" Value="I" Runat="server" /> </asp:ListBox><br><br> <asp:Button OnClick="ButtonClick" Text="Show" Runat="server" /><br> <asp:Label ID="lab" Runat="server" /> </form> </body> </html> Jens Houmann - Nordjyllands Erhvervsakademi

Jens Houmann - Nordjyllands Erhvervsakademi ListBox Jens Houmann - Nordjyllands Erhvervsakademi

Jens Houmann - Nordjyllands Erhvervsakademi ListBox <%@ Page Language="C#" ContentType="text/html" ResponseEncoding="Unicode" %> <%@ Import Namespace="System.Collections" %> <html> <head> <script Language="C#" Runat="server"> void Fill(object sender, EventArgs e) { SortedList data = new SortedList(); data["United States"] = "USA"; data["Great Britain"] = "GB"; data["Germany"] = "D"; data["France"] = "F"; data["Italy"] = "I"; list.DataSource = data; list.DataTextField = "Key"; // take the text from the Key property of the items list.DataValueField = "Value"; // take the value from the Value property of the items list.DataBind(); } void Show(object sender, EventArgs e) { lab.Text = "The selected country has the international car code "; if (list.SelectedItem != null) lab.Text += list.SelectedItem.Value; </script> </head> <body> <form Runat="server"> <asp:ListBox ID="list" Rows="3" Runat="server" AutoPostBack="true" OnSelectedIndexChanged="Show" /> <br><br> <asp:Button OnClick="Fill" Text="Fill" Runat="server" /> <asp:Label ID="lab" Runat="server" /> </form> </body> </html> Jens Houmann - Nordjyllands Erhvervsakademi

Jens Houmann - Nordjyllands Erhvervsakademi ListBox Jens Houmann - Nordjyllands Erhvervsakademi

ListBox – listpage2.aspx <script runat="server" language="C#"> void Page_Load() { string msg = "You have selected: <br />"; if (list1.Items[0].Selected) { msg = msg + list1.Items[0].Text + "<br />"; } if (list1.Items[1].Selected) { msg = msg + list1.Items[1].Text + "<br />"; if (list1.Items[2].Selected) { msg = msg + list1.Items[2].Text + "<br />"; Message.Text = msg; </script> <html> <head> <title>Drop Down List Example</title> </head> <body> <asp:label id="Message" runat="server"/> <br /> <form runat="server"> Which city do you wish to look at hotels for?<br /><br /> <asp:listbox id="list1" runat="server" selectionmode="multiple"> <asp:listitem>Madrid</asp:listitem> <asp:listitem>Oslo</asp:listitem> <asp:listitem>Lisbon</asp:listitem> </asp:listbox> <br /><br /><br /><br /> <input type="Submit"> </form> </body> </html> Jens Houmann - Nordjyllands Erhvervsakademi

Jens Houmann - Nordjyllands Erhvervsakademi Drop Down Jens Houmann - Nordjyllands Erhvervsakademi

Jens Houmann - Nordjyllands Erhvervsakademi Drop Down <%@ Page Language="C#" ContentType="text/html" ResponseEncoding="Unicode" %> <html> <head> <script Language="C#" Runat="server"> void HandleSelect(object sender, EventArgs e) { lab.Text = "The selected country has the international car code "; if (list.SelectedItem != null) lab.Text += list.SelectedItem.Value; } </script> </head> <body> <form Runat="server"> <asp:DropDownList ID="list" OnSelectedIndexChanged="HandleSelect" AutoPostBack="true" Runat="server" > <asp:ListItem Text="United States" Value="USA" /> <asp:ListItem Text="Great Britain" Value="GB" /> <asp:ListItem Text="Germany" Value="D" /> <asp:ListItem Text="France" Value="F" /> <asp:ListItem Text="Italy" Value="I" /> </asp:DropDownList><br> <asp:Label ID="lab" Runat="server" /> </form> </body> </html> Jens Houmann - Nordjyllands Erhvervsakademi

Jens Houmann - Nordjyllands Erhvervsakademi DropDown Jens Houmann - Nordjyllands Erhvervsakademi

Jens Houmann - Nordjyllands Erhvervsakademi DropDown <script runat="server" language="C#"> void Page_Load() { if (Page.IsPostBack) { Message.Text = "You have selected " + list1.SelectedItem.Value; } </script> <html> <head> <title>Drop Down List Example</title> </head> <body> <asp:label id="Message" runat="server"/> <br /> <form runat="server"> Which city do you wish to look at hotels for?<br /><br /> <asp:dropdownlist id="list1" runat="server"> <asp:listitem>Madrid</asp:listitem> <asp:listitem>Oslo</asp:listitem> <asp:listitem>Lisbon</asp:listitem> </asp:dropdownlist> <br /><br /><br /><br /> <input type="Submit"> </form> </body> </html> Jens Houmann - Nordjyllands Erhvervsakademi

Jens Houmann - Nordjyllands Erhvervsakademi Opgave Lav et forenklet bestillingsbillede til pizzaria: L'alito del cane Når der trykkes på bestil, skal bestillingen udskrives. Pizza-type skal vælges fra dropdownliste. Antal er en tekstbox. Lav evt. en checkbox til markering af levering. Programmet skal hedde: Lalito.aspx Jens Houmann - Nordjyllands Erhvervsakademi

Jens Houmann - Nordjyllands Erhvervsakademi L’alito del cane Jens Houmann - Nordjyllands Erhvervsakademi

Jens Houmann - Nordjyllands Erhvervsakademi L’alito del cane Se den vejledende løsning her Jens Houmann - Nordjyllands Erhvervsakademi

Jens Houmann - Nordjyllands Erhvervsakademi Knap så sjovt! Jens Houmann - Nordjyllands Erhvervsakademi

Jens Houmann - Nordjyllands Erhvervsakademi Knap så sjovt <%@ Page Language="C#" debug = true %> <script runat="server"> void Skift1(Object Sender, EventArgs E) { Knap2.Text ="Tryk HER!"; Knap1.Text = "Vent lidt!"; } void Skift2(Object Sender, EventArgs E) Knap3.Text ="Tryk HER!"; Knap2.Text = "Vent lidt!"; void Skift3(Object Sender, EventArgs E) Knap1.Text ="Vent lidt!"; Knap3.Text = "Vent lidt!"; Knap4.Text = "Tryk HER!"; Knap4.Visible=true; void Skift4(Object Sender, EventArgs E) Knap1.Text ="Tryk HER!"; Knap4.Visible=false; </script> <html><body> <form runat="server"> Bare følg instruktionerne <asp:button ID="Knap1" OnClick="Skift1" Text="Tryk HER" BackColor="#CC0000" runat="server" /> <asp:button ID="Knap2" OnClick="Skift2" Text="Vent lidt" BackColor="#CC0000" runat="server" /> <asp:button ID="Knap3" OnClick="Skift3" Text="Vent lidt" BackColor="#CC0000" runat="server" /> <asp:button ID="Knap4" OnClick="Skift4" Text="Vent lidt" BackColor="#CC0000" Visible="false" runat="server" /><br><br> </form> </body></html> Jens Houmann - Nordjyllands Erhvervsakademi

Jens Houmann - Nordjyllands Erhvervsakademi Ændring af labels Jens Houmann - Nordjyllands Erhvervsakademi

Jens Houmann - Nordjyllands Erhvervsakademi Controls til Labels <%@ Page Language="C#" ContentType="text/html" ResponseEncoding="iso-8859-1" %> <script runat="server"> void Skift(object Sender ,EventArgs E) { navn.Text= "Sally Sørøver"; ting.Text ="Lænkehund"; sted.Text = "kongrescenter"; } void Skiftigen(object Sender ,EventArgs E) navn.Text= "Tage Tumpenakke"; ting.Text ="Stegepande"; sted.Text = "tropiske vandland"; void Skiftigenigen(object Sender ,EventArgs E) navn.Text= "Max Bjævermose"; ting.Text ="TINTIN-bog"; sted.Text = "sydlige ø-hav"; </script> <html> <head> <title>Controls</title> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> </head> <body> Hej med dig <ASP:label Id="navn" runat="server" Text="Søren Sømand"/>, tak for den tilsendte <asp:label ID="ting" runat="server" Text="brochure" BackColor="red"/> den gjorde stor lykke her i det lille <asp:label ID="sted" runat="server" Text="hus på prærien" ForeColor="blue" /> hvor vi bor. <form runat="server"> <asp:button ID="btSubmit1" Text="Skift!" onClick="Skift" runat="server"/> <asp:button ID="btSubmit2" Text="Skift igen!" onClick="Skiftigen" runat="server"/> <asp:button ID="btSubmit3" Text="Skift igen-igen!" onClick="Skiftigenigen" runat="server"/> <br><br> </form> </body> </html> Jens Houmann - Nordjyllands Erhvervsakademi

Jens Houmann - Nordjyllands Erhvervsakademi Enable og Disable Jens Houmann - Nordjyllands Erhvervsakademi

Jens Houmann - Nordjyllands Erhvervsakademi Enable og Disable <%@ Page Language="C#" ContentType="text/html"%> <script runat="server"> void Skift(object Sender ,EventArgs E) { tbNavn.Enabled = false; rbKoen.Enabled = false; } void Skiftigen(object Sender ,EventArgs E) tbNavn.Enabled = true; rbKoen.Enabled = true; </script> <html> <head> <title>Controls</title> </head> <body> <h1>Enable og disable</h1> <form runat="server"> Indtast navn: <asp:TextBox runat="server" ID="tbNavn" Enabled="true"></asp:TextBox><br> Vælg køn: <asp:RadioButtonList runat="server" ID="rbKoen"> <asp:ListItem Selected="true">Mand</asp:ListItem> <asp:ListItem>Kvinde</asp:ListItem> </asp:RadioButtonList> <asp:button ID="btSubmit1" Text="Skift!" onClick="Skift" runat="server"/> <asp:button ID="btSubmit2" Text="Skift igen!" onClick="Skiftigen" runat="server"/> </form> </body> </html> Jens Houmann - Nordjyllands Erhvervsakademi

Attributter til TextBoxe MaxLength ReadOnly Visible TabIndex ToolTip Enabled Se et eksempel her Jens Houmann - Nordjyllands Erhvervsakademi

Attributter til TextBoxe <%@ Page Language="C#" ContentType="text/html"%> <script runat="server"> void Skift(object Sender ,EventArgs E) { tbNavn.Visible = false; } void Skiftigen(object Sender ,EventArgs E) tbNavn.Visible = true; tbNavn.ReadOnly = true; void Skiftigenigen(object Sender ,EventArgs E) tbNavn.ReadOnly = false; </script> Jens Houmann - Nordjyllands Erhvervsakademi

Attributter til TextBoxe Jens Houmann - Nordjyllands Erhvervsakademi

Jens Houmann - Nordjyllands Erhvervsakademi Position.html Jens Houmann - Nordjyllands Erhvervsakademi

Jens Houmann - Nordjyllands Erhvervsakademi Position.html <html> <head> <title>Test</title> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> </head> <body> <h1>Afprøvning af position</h1> <br> <img src="../Test/ABE.jpg" style="position:absolute; top:100px; left:500px; z-index:0"> <font size="+5" style="position:absolute; top:100px; left:500px; z-index:1">Smil!</font> <form> <input type="text" style="position:absolute; top:100px; left:150px; "/> <input type="submit" style="position:absolute; top:100px; left:50px; " value="Tryk her"/> </form> <img src="Billeder/Logo.jpg" style="position:absolute; top:75%; left:75%; "> </body> </html> Jens Houmann - Nordjyllands Erhvervsakademi

Positionsbestemmelse på form En implementering af cascading stylesheet (ikke ASP.Net) <asp:Label runat="server" Text="UserId:" style="Z-INDEX: 101; LEFT: 100px; POSITION: absolute; TOP: 70px"></asp:Label> Vil placere labelen 100 pixels fra venstrekanten og 70 pixels fra toppen. Kan bruges som erstatning for tabeller til positionering af alle elementer (også HTML) Kræver at ALT styres med POSITION. Jens Houmann - Nordjyllands Erhvervsakademi

Jens Houmann - Nordjyllands Erhvervsakademi Opgaver Lav denne form. Giv brugeren mulighed for at vælge mellem 4 vilkårlige biblioteker Fortrydknappen skal rense felterne Passwordindtastning skal angives med * Tryk på den ene radiobutton skal deaktivere den anden Når der trykkes på Opret låner, skal der udskrives en kvittering, indeholdende det indtastede. Jens Houmann - Nordjyllands Erhvervsakademi

Jens Houmann - Nordjyllands Erhvervsakademi Opret Låner Se eksemplet her Jens Houmann - Nordjyllands Erhvervsakademi

Jens Houmann - Nordjyllands Erhvervsakademi Validering Validering foretages kun hvis feltet er udfyldt ControlToValidate og ErrorMessage skal være til stede. Typer: Required Field Compare Range Regular Expression Custom Validation Alle opståede fejl findes i ValidationSummary. Jens Houmann - Nordjyllands Erhvervsakademi

Jens Houmann - Nordjyllands Erhvervsakademi Validering Brugere og vejrprognoser er uforudsigelige. Kan blive en meget lang If…then…else sætning I web-programmering er dobbeltfejl besværlige Validator controls findes i System.Web.UI.WebControls Validator controls er kun supplement til kontroller – de giver ikke selv input. Validation control virker på både client og server. Når clienten har godkendt siden sendes den til server som så evt. kan lave et opslag mod en database. Validering stiller krav til Browseren – skal være IE 4.0+ eller Netscape, da der afvikles DHTML. Når man laver view Source, ses en række nye koder. Jens Houmann - Nordjyllands Erhvervsakademi

Validering - RequiredField Jens Houmann - Nordjyllands Erhvervsakademi

Jens Houmann - Nordjyllands Erhvervsakademi Validering <%@ Page Language="C#" %> <script runat="server"> void Submit(object Sender ,EventArgs E) { if (Page.IsValid) lblMessage.Text = "Det er bare helt i orden!"; } </script> <html><body> <form runat="server"> <asp:Label id="lblMessage" runat="server" /><p> Indtast dit navn (skal udfyldes): <asp:TextBox id="tbFName" runat="server" /><br> <asp:RequiredFieldValidator runat="server" ControlToValidate="tbFName" ErrorMessage="Navnefeltet skal udfyldes"/><p> <asp:Button id="tbSubmit" runat="server" Text="Tryk her!" OnClick="Submit" /> </form> </body></html> Jens Houmann - Nordjyllands Erhvervsakademi

Validering - RangeValidator Jens Houmann - Nordjyllands Erhvervsakademi

Validering - RangeValidator <%@ Page Language="C#" %> <html> <head> <title>Range Validator</title> </head> <body> <h1>Range Validator</h1> <form runat="server"> Indtast et nr 1-4711: <asp:TextBox ID="tbDataInd" runat="server"></asp:TextBox> <asp:RangeValidator ControlToValidate="tbDataInd" MinimumValue="1" MaximumValue="4711" Type="Integer" ErrorMessage="Indtastning skal være 1-4711" runat="server"> </asp:RangeValidator><br> <asp:Button ID="btSubmit" runat="server" Text="Tryk her!"></asp:Button> </form> </body> </html> Jens Houmann - Nordjyllands Erhvervsakademi

Validering – Range Validator Jens Houmann - Nordjyllands Erhvervsakademi

Validering – Range Validator <%@ Page Language="C#" %> <html> <head> <title>Range Validator</title> </head> <body> <h1>Range Validator</h1> <form runat="server"> Indtast dato i 2006: <asp:TextBox ID="tbDataInd" runat="server" ></asp:TextBox> <asp:RangeValidator ControlToValidate="tbDataInd" MinimumValue="01/01/2006" MaximumValue="31/12/2006" Type="Date" ErrorMessage="Dato skal være i 2006" runat="server"> </asp:RangeValidator><br> <asp:Button ID="btSubmit" runat="server" Text="Tryk her!"></asp:Button> </form> </body> </html> Jens Houmann - Nordjyllands Erhvervsakademi

Validering – Compare Validator Jens Houmann - Nordjyllands Erhvervsakademi

Validering - CompareValidator <%@ Page Language="C#" %> <html> <head> <title>Compare Validator</title> </head> <body> <h1>Compare Validator</h1> <form runat="server"> Indtast Password <asp:TextBox ID="tbDataInd1" TextMode="Password" runat="server" ></asp:TextBox><br> Gentag Password <asp:TextBox ID="tbDataInd2" TextMode="Password" runat="server" ></asp:TextBox><br> <asp:CompareValidator ControlToValidate="tbDataInd1" ControlToCompare="tbDataInd2" ErrorMessage="Passwords ikke ens!" runat="server"> </asp:CompareValidator><br> <asp:Button ID="btSubmit" runat="server" Text="Tryk her!"></asp:Button> </form> </body> </html> Jens Houmann - Nordjyllands Erhvervsakademi

Jens Houmann - Nordjyllands Erhvervsakademi Validering Jens Houmann - Nordjyllands Erhvervsakademi

Validering - CompareValidering Jens Houmann - Nordjyllands Erhvervsakademi

Validering - CompareValidator <%@ Page Language="C#" %> <html> <head><title>Compare Validator</title></head> <body> <h1>Compare Validator</h1> <form runat="server"> Indtast projektets startdato: <asp:TextBox ID="tbDataInd1" runat="server" ></asp:TextBox><br> Indtast projektets slutdato: <asp:TextBox ID="tbDataInd2" runat="server" ></asp:TextBox><br> <asp:CompareValidator ControlToValidate="tbDataInd1" ControlToCompare="tbDataInd2" Display="Dynamic" Operator="LessThanEqual" Type="Date" ErrorMessage="Slutdato skal ligge efter startdato!" runat="server"> </asp:CompareValidator><br> <asp:Button ID="btSubmit" runat="server" Text="Tryk her!"></asp:Button> </form> </body></html> Jens Houmann - Nordjyllands Erhvervsakademi

Validering - CompareValidator Jens Houmann - Nordjyllands Erhvervsakademi

Validering - CompareValidator <%@ Page Language="C#"%> <script runat=server> void Button_Click(Object sender, EventArgs e) { if (IsValid) Response.Redirect( "ThankYou.aspx" ); } </Script> <html> <head><title>CompareValidatorValue.aspx</title></head> <body> <form Runat="Server"> Minimum Bid: $2.344,89 <br> Enter your bid: <asp:TextBox id="txtBidAmount" Columns="8" Runat="Server"/> <asp:CompareValidator ControlToValidate="txtBidAmount" ValueToCompare="2.344,89" Display="Dynamic" Text="Your bid must be greater than the minimum bid!" Operator="GreaterThan" Type="Currency" Runat="Server" /> <p> Jens Houmann - Nordjyllands Erhvervsakademi

Validering – Regulære udtryk Anvendes til at validere: Email-adresser Telefonnumre URL’er Kundenumre/varenumre Mm 3 grundlæggende klasser: RegEx Match MatchCollection Jens Houmann - Nordjyllands Erhvervsakademi

Validering – Regulære udtryk Regex objRegex; objRegex = new Regex( ”M[uiaå]s ); If (objRegEx.IsMatch( ”Mus” )) Ok = true; Dimensionerer et regularexpression object Definerer gyldige værdier Undersøger om Mus er gyldig værdi. Jens Houmann - Nordjyllands Erhvervsakademi

Validering – Regulære udtryk Karakterklasse definerer gyldige værdier [AE]ffekt Vil acceptere Affekt og Effekt Definition for klokken engelsk format: 12:59pm [01][0-9]:[0-5][0-9][ap]m ^ (cirkumfleks) vil angive ikke gyldige værdier H[^a]t Gyldige: Hot, Hit, Hut, men ikke Hat Jens Houmann - Nordjyllands Erhvervsakademi

Validering – Regulære udtryk [A-Z].[1-9] Er følgende gyldige: B.1 A38 U2 Z.1 Jens Houmann - Nordjyllands Erhvervsakademi

Validering – Regulære udtryk Metakarakterer: . Alle tegn undtagen \n \w Alle tal eller bogstaver \W Alle tegn der ikke er tal eller bogstaver \s Alle whitespace tegn (mellemrum, nylinie, tab) \S Alle ikke whitespacetegn \d Ethvert ciffer 0-9 \D Alt undtagen ciffrene 0-9 Jens Houmann - Nordjyllands Erhvervsakademi

Validering – Regulære udtryk Metakarakterer til positionsbestemmelse: ^ begyndelsen af en streng $ slutningen af en streng \A begyndelsen af en streng i multilinemode \Z slutningen af en streng i multilinemode \b ordgrænse \blet\b = kun ordet let \Asecret\z strengen indeholder kun secret Jens Houmann - Nordjyllands Erhvervsakademi

Validering – Regulære udtryk Quantifiers <p>|<br> Vil matche P-tag ELLER Break * Match 0 eller flere gange + Match 1 eller flere gange ? Match 0 eller 1 gang {n} Match ved præcis n gange {n,} Match mindst n gange {n,m} Match mindst n gange og højst m gange Jens Houmann - Nordjyllands Erhvervsakademi

Validering – Regulære udtryk Jens Houmann - Nordjyllands Erhvervsakademi

Validering – Regulære udtryk Jens Houmann - Nordjyllands Erhvervsakademi

Validering – Regulære udtryk Validering af emailadresse: Email Address:<br> <asp:TextBox id="OurEmail" runat="server" /> <asp:RegularExpressionValidator id="ValidEmail" ControlToValidate="OurEmail" ValidationExpression="^([a-zA-Z0-9_\-\.]+)@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.)|(([a-zA-Z0-9\-]+\.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(\]?)$" ErrorMessage="Invalid Email Entry" runat="server" /><br> Jens Houmann - Nordjyllands Erhvervsakademi

Jens Houmann - Nordjyllands Erhvervsakademi ValidationSummary Jens Houmann - Nordjyllands Erhvervsakademi

Jens Houmann - Nordjyllands Erhvervsakademi ValidationSummary Se koden her Jens Houmann - Nordjyllands Erhvervsakademi

Jens Houmann - Nordjyllands Erhvervsakademi Opgave (kundenr.aspx) Lav et program der modtager et navn på mindst 8 tegn og et kundenr. Kundenr skal opbygges således: K eller C (Kontant/CreditCard) Type: a,b,c Nr på 4 cifre Afsluttes med + Eksempel på gyldigt nr: Ca4711+ Jens Houmann - Nordjyllands Erhvervsakademi

Jens Houmann - Nordjyllands Erhvervsakademi Opgave kundenr.aspx <form runat="server"> Indtast kundenavn: <asp:TextBox runat="server" ID="tbNavn"/><br> Indtast kundenr: <asp:TextBox runat="server" ID="tbKundeNr" Width="60"/><br> <asp:Button runat="server" ID="btSubmit" Text="Tryk for oprettelse!" OnClick="Opret"/><br> <asp:RegularExpressionValidator runat="server" ControlToValidate="tbNavn" ErrorMessage="Kundenavn skal være mindst 8 tegn" ValidationExpression=".{8,}"> </asp:RegularExpressionValidator><br> ControlToValidate="tbKundeNr" ErrorMessage="Kundenummer skal overholde gældende standard - se manualen" ValidationExpression="\b[KC][abc]\d{4}[+]"> <asp:Label ID="lblTekst" runat="server"></asp:Label> </form> Jens Houmann - Nordjyllands Erhvervsakademi

Jens Houmann - Nordjyllands Erhvervsakademi Opgave kundenr.aspx Jens Houmann - Nordjyllands Erhvervsakademi

Jens Houmann - Nordjyllands Erhvervsakademi Validering Se koden til validering2.aspx Jens Houmann - Nordjyllands Erhvervsakademi

Jens Houmann - Nordjyllands Erhvervsakademi Validering Jens Houmann - Nordjyllands Erhvervsakademi

Jens Houmann - Nordjyllands Erhvervsakademi Validering View Source: Jens Houmann - Nordjyllands Erhvervsakademi

Jens Houmann - Nordjyllands Erhvervsakademi Filer Afklaring Hvad er en fil? Hvad adskiller en fil fra en database? Hvornår anvender vi filer frem for databaser? Når ASP.NET kører anvender vi mange filer: Web-config Global.asax Filer kan indeholde kode som skal afvikles (file inclusion) Jens Houmann - Nordjyllands Erhvervsakademi

Jens Houmann - Nordjyllands Erhvervsakademi Filer Server-side include giver mulighed for genbrug af kode. <!--#include file=fil.nvn”--> Eller <!--#include virtual file=”fil.nvn”--> Include kan ligge hvor som helst Skal have extension: Shtml, asp, asax, aspx (+et par stykker) Jens Houmann - Nordjyllands Erhvervsakademi

Jens Houmann - Nordjyllands Erhvervsakademi Streams ……..er noget helt andet. Kan læse fra og skrive til harddisk, netværk. Streams er binære Ikke at forveksle med streaming. Anvender: textReader, TextWriter XMLTextReader, XMLTextWriter Jens Houmann - Nordjyllands Erhvervsakademi

Jens Houmann - Nordjyllands Erhvervsakademi Streams Jens Houmann - Nordjyllands Erhvervsakademi

Streams - Filoplysninger void Page_Load(Object Sender,EventArgs e ) { FileInfo f = new FileInfo(Server.MapPath("filopl.aspx")); lblMessage.Text="Fil information<br>"+"<b>Navn: </b>"+f.Name+"<br>"; lblMessage.Text += "<b>Sti: </b>" + f.DirectoryName + "<br>"; lblMessage.Text += "<b>Sidst tilgået: </b>" + f.LastAccessTime +"<br>"; lblMessage.Text += "<b>Sidst ændret: </b>" + f.LastWriteTime + "<br>"; lblMessage.Text += "<b>Længde: </b>" + f.Length + " bytes<p>"; } </script> Jens Houmann - Nordjyllands Erhvervsakademi

Jens Houmann - Nordjyllands Erhvervsakademi Streams Jens Houmann - Nordjyllands Erhvervsakademi

Jens Houmann - Nordjyllands Erhvervsakademi Læsning af en tekstfil void Page_Load(Object Sender ,EventArgs e) { string line; FileStream fs = new FileStream(Server.MapPath("Tekst.fil"), FileMode.Open, FileAccess.Read); StreamReader objReader = new StreamReader(fs); lblMessage.Text = "<pre>"; while ((line = objReader.ReadLine()) != null) lblMessage.Text += line + "<br>"; } lblMessage.Text += "</pre>"; Jens Houmann - Nordjyllands Erhvervsakademi

Jens Houmann - Nordjyllands Erhvervsakademi Streams <%@ Import Namespace="System.IO" %> <script language="C#" runat="server"> void Page_Load(Object Sender ,EventArgs e) { string line; FileStream fs = new FileStream(Server.MapPath("Tekst.fil"), FileMode.Open, FileAccess.Read); StreamReader objReader = new StreamReader(fs); lblMessage.Text = "<pre>"; while (objReader.Peek() >-1) line = objReader.ReadLine(); lblMessage.Text += line + "<br>"; } lblMessage.Text += "</pre>"; </script> Jens Houmann - Nordjyllands Erhvervsakademi

Jens Houmann - Nordjyllands Erhvervsakademi Streams Se koden til fillaes1.aspx Og koden til fillaes2.aspx Peek kigger lige om det næste tegn der skal læses er -1, for så er vi færdige. Der kan læses: Tegnvis Linievis Hele filen på en gang Der kan: Konverteres til HTML Tolkes unicode Jens Houmann - Nordjyllands Erhvervsakademi

Streams skrivning af en fil <%@ Import Namespace="System.IO" %> <script language="C#" runat="server"> void Page_Load(Object Sender, EventArgs e) { StreamWriter objWriter = new StreamWriter(Server.MapPath("Min.fil"), true); objWriter.WriteLine("Goodmorning Campers"); objWriter.WriteLine("this might be your lucky day!"); objWriter.Write("......and so be it!"); objWriter.Close(); lblMessage.Text = "..og det var det!"; } </script> <html><body> <h1>Skrivning af en tekstfil</h1> <form runat="server"> <asp:label id="lblMessage" runat=server /> </form> </body></html> Jens Houmann - Nordjyllands Erhvervsakademi

Streams skrivning af en fil Jens Houmann - Nordjyllands Erhvervsakademi

Skrivning af en Tekstfil <%@ Import Namespace="System.IO" %> <script language="C#" runat="server"> void Page_Load(Object Sender, EventArgs e) { StreamWriter objWriter = new StreamWriter(Server.MapPath("Min.fil"), true); objWriter.WriteLine("Goodmorning Campers"); objWriter.WriteLine("this might be your lucky day!"); objWriter.Write("......and so be it!"); objWriter.Close(); lblMessage.Text = "..og det var det!"; } </script> <html><body> <h1>Skrivning af en tekstfil</h1> <form runat="server"> <asp:label id="lblMessage" runat=server /> </form> </body></html> Jens Houmann - Nordjyllands Erhvervsakademi

Jens Houmann - Nordjyllands Erhvervsakademi Opgave Programmet: opretlaaner.aspx skal have en tilføjelse. De indtastede data skal gemmes i en tekstfil med navnet: laaner.txt Lav evt. også en knap der kan vise hele tekstfilens indhold. Udskrivningen kan evt. foretages i et andet script: vislaaner.aspx. Der redirectes til dette script. Jens Houmann - Nordjyllands Erhvervsakademi

Jens Houmann - Nordjyllands Erhvervsakademi OpretLaanerMedFil.aspx Se koden her Jens Houmann - Nordjyllands Erhvervsakademi

Jens Houmann - Nordjyllands Erhvervsakademi Redirect Jens Houmann - Nordjyllands Erhvervsakademi

Jens Houmann - Nordjyllands Erhvervsakademi Redirect <%@ Page Language="C#" %> <script runat="server"> void Videre(Object src, EventArgs E) { Response.Redirect("http://www.microsoft.com"); } void Datosiden(Object src, EventArgs E) Response.Redirect("Datotid.aspx"); </script> <hr> <html> <head> <title>Redirect til en anden side</title> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> </head> <body> <font size="5">Omdirigering!</font> <p> ******************************************** </form> </body> </html> Jens Houmann - Nordjyllands Erhvervsakademi

Jens Houmann - Nordjyllands Erhvervsakademi Sessionsvariable Opbevaring af data på serveren Kan kun tilgås af dén der har lavet dem. Når browseren lukkes, vil data forsvinde. Genkendes af serveren på Session-ID Jens Houmann - Nordjyllands Erhvervsakademi

Jens Houmann - Nordjyllands Erhvervsakademi Sessionsvariable Jens Houmann - Nordjyllands Erhvervsakademi

Jens Houmann - Nordjyllands Erhvervsakademi Sessionsvariable Jens Houmann - Nordjyllands Erhvervsakademi

Jens Houmann - Nordjyllands Erhvervsakademi Sessionsvariable <%@ Page Language="C#" ContentType="text/html" Debug="true" %> <script language="c#" runat="server"> void GemSession(object Sender ,EventArgs E) { Session["Navn"]=tbNavn.Text; Session["Adresse"]=tbAdresse.Text; } void VisSession(object Sender ,EventArgs E) lblNavn.Text= Session["Navn"].ToString(); lblAdresse.Text = Session["Adresse"].ToString(); </script> <html> <head> <title>Brugen af sessionsvariable</title> <LINK REL="Stylesheet" HREF="StyleSheet/styles.css" TYPE="text/css"> </head> <body> <h1>Eksempel på brugen af Sessionsvariable</h1> <form id="minForm" name="fmForm" runat="server"> <p>Indtast dit navn: <asp:TextBox ID="tbNavn" runat="server" MaxLength="25" Size="25"></asp:TextBox> </p><br><br> <p>Indtast din adresse: <asp:TextBox ID="tbAdresse" runat="server" MaxLength="25" Size="25"></asp:TextBox> </p><br><br> <asp:Button ID="btGem" runat="server" Text="Klik her for at gemme" OnClick="GemSession"></asp:Button> <asp:Button ID="btVis" runat="server" Text="Klik her for se indholdet" OnClick="VisSession"></asp:Button> <br> <p>Indholdet af vores sessionsvariable er: </p> <asp:Label runat="server" ID="lblNavn"></asp:Label><br> <asp:Label runat="server" ID="lblAdresse"></asp:Label><br> </form> </body> </html> Jens Houmann - Nordjyllands Erhvervsakademi

Jens Houmann - Nordjyllands Erhvervsakademi Sessionsvariable <%@Page Language="C#" %> <script runat="server"> void Submit_Click(Object src, EventArgs E) { if (tbName.Value !="") Session["Name"]=tbName.Value; Response.Write("Hej med dig " + Session["Name"]+"!"); } else Response.Write("Du glemte at indtaste navn."); </script> <html><body> <form runat="server"> Venligst indtast dit navn: <input type="text" id="tbName" runat="server"/> <p> <asp:Button id="btSubmit" text="Submit" runat="server" OnClick="Submit_Click" /> </form> </body></html> Jens Houmann - Nordjyllands Erhvervsakademi

Jens Houmann - Nordjyllands Erhvervsakademi Sessionsvariable <%@ Page Language="C#" %> <script runat="server"> void Page_Load(object Sender, EventArgs e) { Label1.Text ="Minsanten om det ikke er " + Session["Name"] + "!"; } </script> <html><body> <form runat="server"> <asp:Label id="Label1" runat="server"/> </form> </body></html> Jens Houmann - Nordjyllands Erhvervsakademi

Buttons med CodeBehind <%@ Page Language="C#" Inherits="AdderPage" ContentType="text/html" ResponseEncoding="Unicode" Src="Adder.aspx.cs" %> <html> <head> <title>Balance</title> </head> <body> <form method="post" Runat="server"> <b>Current balance:</b> <asp:Label ID="total" Text="0" Runat="server"/> Dollars<br><br> <asp:TextBox ID="amount" Runat="server"/> <asp:Button ID="ok" Text="Deposit" OnClick="ButtonClick" Runat="server" /> </form> </body> </html> CodeBehind3.aspx Jens Houmann - Nordjyllands Erhvervsakademi

Buttons med CodeBehind using System; using System.Web.UI; using System.Web.UI.WebControls; public class AdderPage : Page { protected Label total; protected TextBox amount; protected Button ok; public void ButtonClick (object sender, EventArgs e) { int totalVal = Convert.ToInt32(total.Text); int amountVal = Convert.ToInt32(amount.Text); total.Text = (totalVal + amountVal).ToString(); } Adder.aspx.cs Jens Houmann - Nordjyllands Erhvervsakademi

Buttons med CodeBehind Jens Houmann - Nordjyllands Erhvervsakademi

Jens Houmann - Nordjyllands Erhvervsakademi StateBags Anvendes til at gemme data når en form postes. Indhold glemmes så snart siden forlades. Bør kun bruges til temporære data. <%@ Page Language="C#" %> <script runat="server"> void Page_Load(object Sender ,EventArgs E) { if (!Page.IsPostBack) ViewState["StartTime"] = DateTime.Now; lblMessage.Text = "Klokken er nu: " + ViewState["StartTime"]; } void Submit(object Sender ,EventArgs E) lblMessage.Text = "Og nu er klokken: " + DateTime.Now +"<br>vi startede: " + ViewState["StartTime"]; </script> <html><body> <font size="5">Et eksempel på brugen af Statebags </font><hr><p> <form runat="server"> <asp:Button id="btSubmit" runat="server" Text="Submit" onClick="Submit" /> <p> <asp:Label id="lblMessage" runat=server /> </form> </body></html> Jens Houmann - Nordjyllands Erhvervsakademi

Jens Houmann - Nordjyllands Erhvervsakademi StateBags Jens Houmann - Nordjyllands Erhvervsakademi

Jens Houmann - Nordjyllands Erhvervsakademi AutoPostBack Hvis true, så postes data så snart en event er indtruffet. <%@ Page Language="C#" %> <%@ Import Namespace="System.Drawing" %> <script runat="server"> void NameHandler(object Sender ,EventArgs E) { lblMessage.Text = tbName.Text + ", Vælg en farve: "; } void ListHandler(object Sender ,EventArgs E) lbColor.BackColor = Color.FromName(lbColor.SelectedItem.Text); </script> <html><body> <form runat="server"> <asp:Textbox id="tbName" runat="server" OnTextChanged="NameHandler" AutoPostBack="true" /><p> <asp:Label id="lblMessage" runat="server" Text="Vælg en farve: " /><p> <asp:Listbox id="lbColor" runat="server" OnSelectedIndexChanged="ListHandler" AutoPostBack="true" > <asp:Listitem>Red</asp:Listitem> <asp:Listitem>blue</asp:Listitem> <asp:Listitem>green</asp:Listitem> <asp:Listitem>white</asp:Listitem> </asp:Listbox> </form> </body></html> Jens Houmann - Nordjyllands Erhvervsakademi

Jens Houmann - Nordjyllands Erhvervsakademi AutoPostBack Jens Houmann - Nordjyllands Erhvervsakademi

Jens Houmann - Nordjyllands Erhvervsakademi Opgave Lav opgave navngiv. En checkbox med barnets køn. Hvis køn er dreng, sættes en listbox med eks. 5 drengenavne. Når man vælger et drengenavn skal teksten: ”xxxxx er da også et pænt navn!” komme frem på skærmen. Når køn skifter til pige, ja så skal der vises et antal pigenavne. Jens Houmann - Nordjyllands Erhvervsakademi

Jens Houmann - Nordjyllands Erhvervsakademi NavnGiv Se kildekoden her: navngiv.aspx Jens Houmann - Nordjyllands Erhvervsakademi

Jens Houmann - Nordjyllands Erhvervsakademi Navngiv Jens Houmann - Nordjyllands Erhvervsakademi

Jens Houmann - Nordjyllands Erhvervsakademi Kalender - forenklet <%@ Page Language="C#" ContentType="text/html" %> <html> <head> <title>Kalender-eksempel</title> </head> <body> <h1>Kalender</h1> <form runat="server"> <asp:Calendar runat="server"></asp:Calendar> </form> </body> </html> Jens Houmann - Nordjyllands Erhvervsakademi

Jens Houmann - Nordjyllands Erhvervsakademi Kalender - forenklet Jens Houmann - Nordjyllands Erhvervsakademi

Jens Houmann - Nordjyllands Erhvervsakademi Web Server Control Kalender: Jens Houmann - Nordjyllands Erhvervsakademi

Web Server Control - kalender Se koden her Jens Houmann - Nordjyllands Erhvervsakademi

Jens Houmann - Nordjyllands Erhvervsakademi Strenge streng1.aspx Jens Houmann - Nordjyllands Erhvervsakademi

Jens Houmann - Nordjyllands Erhvervsakademi Strenge streng1.aspx <%@ page language="c#" runat="server"%> <script runat=server> public void page_load() { string strStreng1; strStreng1 = "Søren Sømand og Sally Sørøver på nye Eventyr"; OurLabel.Text = strStreng1 + ", er " + strStreng1.Length + " tegn lang"; } </script> <html> <title>String Længde</title> <body> <asp:label id="OurLabel" runat="server"/> </body> </html> Jens Houmann - Nordjyllands Erhvervsakademi

Jens Houmann - Nordjyllands Erhvervsakademi Strenge streng2.aspx <%@ page language="c#" runat="server"%> <script runat=server> public void page_load(){ string var1,var2,var3; var1 = "ASP.NET is "; var2 = "very cool!"; var3 = var1 + var2; // <<<WAHOO Concatenation OurLabel.Text = var3; } </script> <html> <title>String Concatenation</title> <body> <asp:label id="OurLabel" runat="server"/> </body> </html> Jens Houmann - Nordjyllands Erhvervsakademi

Jens Houmann - Nordjyllands Erhvervsakademi Strenge streng2.aspx Jens Houmann - Nordjyllands Erhvervsakademi

Jens Houmann - Nordjyllands Erhvervsakademi Strengeksempel 3 <%@ page language="c#" runat="server"%> <script runat=server> public void page_load() { String OurString,OurWord,OurFoundWord; OurString = "Det var en mørk og stormfuld nat i Vester Hjermitslev"; OurWord = "nat"; OurFoundWord = OurString.Substring(OurString.IndexOf(OurWord),OurWord.Length); OurLabel.Text = OurFoundWord; } </script> <html> <title>String Substring</title> <body> <asp:label id="OurLabel" runat="server"/> </body> </html> Jens Houmann - Nordjyllands Erhvervsakademi

Jens Houmann - Nordjyllands Erhvervsakademi Strenge streng4.aspx Jens Houmann - Nordjyllands Erhvervsakademi

Jens Houmann - Nordjyllands Erhvervsakademi Strengeksempel 4 <%@ page language="c#" runat="server"%> <script runat=server> public void page_load() { String OurString,MySubStr; OurString = "Søren Sømand og Sally Sørøver var taget på togt"; OurLabel.Text = "Teksten: " + OurString + "<br>"; //Show first 11 characters; MySubStr = OurString.Substring(0,11); OurLabel.Text+= "De første 11 tegn: " + MySubStr + "<br>"; //Show last 4 characters; MySubStr = OurString.Substring(37); OurLabel.Text+= "Fra postition 37: " + MySubStr + "<br>"; //Show 3 character from the middle; MySubStr = OurString.Substring(10,3); OurLabel.Text+= "position 10 og 3 tegn frem: " + MySubStr; } </script> <html> <title>String Substring</title> <body> <asp:label id="OurLabel" runat="server"/> </body> </html> Jens Houmann - Nordjyllands Erhvervsakademi

Jens Houmann - Nordjyllands Erhvervsakademi Strenge streng5.aspx Jens Houmann - Nordjyllands Erhvervsakademi

Jens Houmann - Nordjyllands Erhvervsakademi Strenge streng5.aspx <%@ page language="c#" runat="server"%> <script runat=server> public void page_load() { String OurString; OurString = "Om søndagen tog Søren Sømand på togt med Sally Sørøver"; OurLabel.Text += "Original Tekst: " + OurString + "<br><br>"; OurLabel.Text += "Med replacement: " + OurString.Replace("togt","druk"); } </script> <html> <title>String - Replace</title> <body> <asp:label id="OurLabel" runat="server"/> </body> </html> Jens Houmann - Nordjyllands Erhvervsakademi

Jens Houmann - Nordjyllands Erhvervsakademi Strenge streng6.aspx Jens Houmann - Nordjyllands Erhvervsakademi

Jens Houmann - Nordjyllands Erhvervsakademi Strenge streng6.aspx <%@ page language="c#" runat="server"%> <script runat=server> public void page_load(){ String OurString; OurString = "Det Var Den Dag Søren Sømand og Sally Sørøver Tog På Druk!"; OurLabel.Text += "<strong>Original String:</strong>" + OurString + "<br><br>"; OurLabel.Text += "<strong>ToUpper Example:</strong>" + OurString.ToUpper() + "<br><br>"; OurLabel.Text += "<strong>ToLower Example:</strong>" + OurString.ToLower(); } </script> <html> <title>String Upper og Lower</title> <body> <asp:label id="OurLabel" runat="server"/> </body> </html> Jens Houmann - Nordjyllands Erhvervsakademi

Jens Houmann - Nordjyllands Erhvervsakademi Strenge streng7.aspx <%@ page language="c#" runat="server"%> <script runat=server> public void page_load(){ String OurString; OurString = " Det Var Den Dag Søren Sømand og Sally Sørøver Tog På Druk! "; OurLabel.Text = "Original tekst:" + OurString + "<br><br>"; OurLabel.Text += "Original længde:; " + OurString.Length + "<br><br>"; OurString = OurString.Trim(); OurLabel.Text += "Efter trim: " + OurString + "<br><br>"; OurLabel.Text += "Ny længde:" + OurString.Length + "<br><br>"; } </script> <html> <title>String Trim</title> <body> <asp:label id="OurLabel" runat="server"/> </body> </html> Jens Houmann - Nordjyllands Erhvervsakademi

Jens Houmann - Nordjyllands Erhvervsakademi Strenge streng7.aspx Jens Houmann - Nordjyllands Erhvervsakademi

Jens Houmann - Nordjyllands Erhvervsakademi Opgave Lav et program, der kan modtage to strenge: En tekst og et ord eller del af et ord. Programmet skal så bare fortælle hvor i den oprindelige tekst ordet findes. Hvis ikke det findes, skal der gives en fejlmeddelelse. Jens Houmann - Nordjyllands Erhvervsakademi

Jens Houmann - Nordjyllands Erhvervsakademi Strengeksempel Jens Houmann - Nordjyllands Erhvervsakademi

Jens Houmann - Nordjyllands Erhvervsakademi Strengeksempel Se den vejledende løsning her Jens Houmann - Nordjyllands Erhvervsakademi

Jens Houmann - Nordjyllands Erhvervsakademi Opgave Lav et program, der er i stand til at erstatte blanke i en indtastet streng, når man trykker en knap. En anden knap optæller antallet af blanke i den indtastede tekst. Jens Houmann - Nordjyllands Erhvervsakademi

Jens Houmann - Nordjyllands Erhvervsakademi Opgave Fjernblanke Se den vejledende løsning her fjernblanke.aspx Jens Houmann - Nordjyllands Erhvervsakademi

CodeBehind – mere struktur Anvendes for at adskille kode fra design Giver mulighed for genbrug af kode. Erklæres med sætningen: <%@ Page Language="C#" AutoEventWireup="true" CodeFile=”PgmNavn.aspx.cs" Inherits=”PgmNavn" %> I filen PgmNavn.aspx.cs angives: public partial class PgmNavn : System.Web.UI.Page Jens Houmann - Nordjyllands Erhvervsakademi

CodeBehind – mere struktur CodeBehind.aspx <%@ Page Language="C#" AutoEventWireup="true" CodeFile="CodeBehind.aspx.cs" Inherits="CodeBehind" %> <head runat="server"> <title>CodeBehind eksempel</title> </head> <body> <form id="form1" runat="server"> <div> <asp:Label ID="lblOverskrift" runat="server" Font-Bold="True" Font-Size="Large" Style="z-index: 100; left: 112px; position: absolute; top: 24px" Text="CodeBehind Eksempel" Width="200px"></asp:Label> <asp:TextBox ID="tbNavn" runat="server" Style="z-index: 101; left: 232px; position: absolute; top: 144px"></asp:TextBox> <asp:Label ID="lblTekst1" runat="server" Style="z-index: 102; left: 112px; position: absolute; top: 144px" Text="Indtast navn:" Width="104px" Font-Bold="True"></asp:Label> <asp:Button ID="btUdskriv" runat="server" OnClick="Udskriv" Style="z-index: 103; left: 112px; position: absolute; top: 192px" Text="Tryk her!" Width="136px" /> <asp:Label ID="lblDato" runat="server" Style="z-index: 104; left: 112px; position: absolute; top: 64px" Width="224px"></asp:Label> <asp:Label ID="lblUddata" runat="server" Style="z-index: 106; left: 112px; position: absolute; top: 240px" Width="280px"></asp:Label> </div> Jens Houmann - Nordjyllands Erhvervsakademi

CodeBehind – mere struktur CodeBehind.aspx.cs using System; using System.Data; using System.Configuration; using System.Collections; using System.Web; using System.Web.Security; using System.Web.UI; using System.Web.UI.WebControls; using System.Web.UI.WebControls.WebParts; using System.Web.UI.HtmlControls; public partial class CodeBehind : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) lblDato.Text = "Dato: "; lblDato.Text += Convert.ToString(DateTime.Now); } protected void Udskriv(object sender, EventArgs e) lblUddata.Text = "Hej med dig "; lblUddata.Text += tbNavn.Text; Jens Houmann - Nordjyllands Erhvervsakademi

Jens Houmann - Nordjyllands Erhvervsakademi Databind Checkboxlist og databind Se koden her Jens Houmann - Nordjyllands Erhvervsakademi

Jens Houmann - Nordjyllands Erhvervsakademi Data - persistens At kunne: Gemme Finde Ændre Slette Udveksle data er væsentligt for virksomheden Kan gøres med: Filer Databaser Jens Houmann - Nordjyllands Erhvervsakademi

Jens Houmann - Nordjyllands Erhvervsakademi Databaser Hvad er en database? Hvor kunne man bruge en database i: En sportsklub Et rejsebureau En fotoforretning Et e-handelsfirma En skole Databaser er lette at håndtere i ASP.NET Jens Houmann - Nordjyllands Erhvervsakademi

Jens Houmann - Nordjyllands Erhvervsakademi Databaser Data access-teknologien i .Net er ADO.NET En database er: En samling af data, som er organiseret på en sådan måde, at dens indhold let kan tilgås og blive manipuleret. Et relationelt databasesystem tilbyder software til at gemme, søge og modificere data i databasen. RDBMS indeholder metadata til beskrivelse af organisationen og typen af data. Jens Houmann - Nordjyllands Erhvervsakademi

Jens Houmann - Nordjyllands Erhvervsakademi Databaser Centrale begreber: Tabeller Kolonner Records/tuppler Felter/attributter Primærnøgle (unique) Relationer SQL (Structured Query Language) Vigtigt: At undgå redundans – normalisering Jens Houmann - Nordjyllands Erhvervsakademi

Jens Houmann - Nordjyllands Erhvervsakademi Databaser Microsoft Access (desktop) MS SQL Server Oracle MySql IBM DB2 Jens Houmann - Nordjyllands Erhvervsakademi

Databaser - .Net data providers Jens Houmann - Nordjyllands Erhvervsakademi

Databaser – ADO.Net objecter Jens Houmann - Nordjyllands Erhvervsakademi

Oprettelse af DB i Access Jens Houmann - Nordjyllands Erhvervsakademi

Oprettelse af DB i Access Jens Houmann - Nordjyllands Erhvervsakademi

Oprettelse af DB i Access Jens Houmann - Nordjyllands Erhvervsakademi

Datagrid – den enkle metode Jens Houmann - Nordjyllands Erhvervsakademi

Datagrid – den enkle metode <%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default3.aspx.cs" Inherits="Default3" %> <head runat="server"> <title>Vis DataBase</title> </head> <body> <form id="form1" runat="server"> <div> <asp:DataGrid runat="Server" ID="DataGrid1"></asp:DataGrid> </div> </form> </body> </html> Jens Houmann - Nordjyllands Erhvervsakademi

Datagrid – den enkle metode using System; using System.Data; using System.Data.OleDb; //Bemærk denne linie using System.Configuration; using System.Collections; using System.Web; using System.Web.Security; using System.Web.UI; using System.Web.UI.WebControls; using System.Web.UI.WebControls.WebParts; using System.Web.UI.HtmlControls; public partial class Default3 : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) string strConnection = "Provider=Microsoft.Jet.OleDb.4.0;"; strConnection += @"Data Source=C:\slet\App_data\navneDB.mdb"; OleDbConnection conn = new OleDbConnection(); conn.ConnectionString = strConnection; OleDbCommand cmd = new OleDbCommand("SELECT * FROM KundeTabel", conn); OleDbDataAdapter da = new OleDbDataAdapter(cmd); DataSet ds = new DataSet(); da.Fill(ds); DataGrid1.DataSource = ds; DataGrid1.DataBind(); } Jens Houmann - Nordjyllands Erhvervsakademi

Databaseadgang via codebehind <%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %> <head runat="server"> <title>Læse fra DB</title> </head> <body> <h1>Læse fra en Access database</h1> <form id="form1" runat="server"> <div> <asp:AccessDataSource ID="AccessDataSource1" runat="server" DataFile="~/App_Data/NavneDB.mdb" SelectCommand="SELECT * FROM [KundeTabel]"></asp:AccessDataSource>   <asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" DataKeyNames="Nr" DataSourceID="AccessDataSource1"> <Columns> <asp:BoundField DataField="Nr" HeaderText="Nr" InsertVisible="False" ReadOnly="True" SortExpression="Nr" /> <asp:BoundField DataField="Navn" HeaderText="Navn" SortExpression="Navn" /> <asp:BoundField DataField="Adresse" HeaderText="Adresse" SortExpression="Adresse" /> <asp:BoundField DataField="PostNr" HeaderText="PostNr" SortExpression="PostNr" /> <asp:BoundField DataField="Byen" HeaderText="Byen" SortExpression="Byen" /> <asp:BoundField DataField="TelefonNr" HeaderText="TelefonNr" SortExpression="TelefonNr" /> <asp:BoundField DataField="AktuelSaldo" HeaderText="AktuelSaldo" SortExpression="AktuelSaldo" /> <asp:BoundField DataField="KoebAarTilDato" HeaderText="KoebAarTilDato" SortExpression="KoebAarTilDato" /> <asp:BoundField DataField="Bemaerk" HeaderText="Bemaerk" SortExpression="Bemaerk" /> </Columns> </asp:GridView> </div> </form> Jens Houmann - Nordjyllands Erhvervsakademi

Jens Houmann - Nordjyllands Erhvervsakademi Default.aspx.cs using System; using System.Data; using System.Configuration; using System.Web; using System.Web.Security; using System.Web.UI; using System.Web.UI.WebControls; using System.Web.UI.WebControls.WebParts; using System.Web.UI.HtmlControls; public partial class _Default : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) } Jens Houmann - Nordjyllands Erhvervsakademi

Jens Houmann - Nordjyllands Erhvervsakademi Resultat Jens Houmann - Nordjyllands Erhvervsakademi

Jens Houmann - Nordjyllands Erhvervsakademi DataList Jens Houmann - Nordjyllands Erhvervsakademi

Jens Houmann - Nordjyllands Erhvervsakademi Datalist - kode <form id="form1" runat="server"> <div> <asp:AccessDataSource ID="AccessDataSource1" runat="server" DataFile="~/App_Data/NavneDB.mdb" SelectCommand="SELECT * FROM [KundeTabel]"></asp:AccessDataSource> </div> <asp:DataList ID="DataList1" runat="server" DataKeyField="Nr" DataSourceID="AccessDataSource1"> <ItemTemplate> Nr: <asp:Label ID="NrLabel" runat="server" Text='<%# Eval("Nr") %>'></asp:Label><br /> Navn: <asp:Label ID="NavnLabel" runat="server" Text='<%# Eval("Navn") %>'></asp:Label><br /> Adresse: <asp:Label ID="AdresseLabel" runat="server" Text='<%# Eval("Adresse") %>'></asp:Label><br /> PostNr: <asp:Label ID="PostNrLabel" runat="server" Text='<%# Eval("PostNr") %>'></asp:Label><br /> Byen: <asp:Label ID="ByenLabel" runat="server" Text='<%# Eval("Byen") %>'></asp:Label><br /> TelefonNr: <asp:Label ID="TelefonNrLabel" runat="server" Text='<%# Eval("TelefonNr") %>'></asp:Label><br /> AktuelSaldo: <asp:Label ID="AktuelSaldoLabel" runat="server" Text='<%# Eval("AktuelSaldo") %>'> </asp:Label><br /> KoebAarTilDato: <asp:Label ID="KoebAarTilDatoLabel" runat="server" Text='<%# Eval("KoebAarTilDato") %>'> Bemaerk: <asp:Label ID="BemaerkLabel" runat="server" Text='<%# Eval("Bemaerk") %>'></asp:Label><br /> <br /> </ItemTemplate> </asp:DataList> Jens Houmann - Nordjyllands Erhvervsakademi

Jens Houmann - Nordjyllands Erhvervsakademi Databaser Navnedatabasen findes her: navne.mdb ASP.NET tilbyder en række foruddefinerede udskrifter som er lette at bruge. De fem trin i DB-adgang: Opsæt en DB-connection Åbn’ DB-connection Fyld et datasæt med de ønskede data Opsæt et dataview for at vise data Bind en server control til det pågældende dataview via databinding. Data tilgås ved hjælp af SQL-sproget. Data kan indsættes, ændres, slettes og udvælges via SQL. Jens Houmann - Nordjyllands Erhvervsakademi

Jens Houmann - Nordjyllands Erhvervsakademi Test af connection <%@ Import Namespace="System.Data" %> <%@ Import Namespace="System.Data.OleDb" %> <script Language="c#" runat="server"> void Page_Load() { string strConnection = "Provider=Microsoft.Jet.OleDb.4.0;"; strConnection += @"Data Source=C:\inetpub\wwwroot\aspnet\data\navne.mdb"; data_src.Text = strConnection; OleDbConnection objConnection = new OleDbConnection(); objConnection.ConnectionString = strConnection; try objConnection.Open(); con_open.Text="Connection opened successfully.<br />"; objConnection.Close(); con_close.Text="Connection closed.<br />"; } catch (Exception e) con_open.Text="Connection failed to open.<br />"; con_close.Text=e.ToString(); </script> Jens Houmann - Nordjyllands Erhvervsakademi

Jens Houmann - Nordjyllands Erhvervsakademi Test af connection Jens Houmann - Nordjyllands Erhvervsakademi

Jens Houmann - Nordjyllands Erhvervsakademi Server.MapPath Vil indsætte aktuel sti foran DB-navne Flytning af programmer til anden placering/anden server kræver ingen ændringer i koden. string strConnection = "Provider=Microsoft.Jet.OleDb.4.0;"; strConnection += @"Data Source=" + Server.MapPath("Navne.mdb"); Jens Houmann - Nordjyllands Erhvervsakademi

Jens Houmann - Nordjyllands Erhvervsakademi Opgave Lav ved hjælp af Access en database til brug ved pizza-systemet. Afprøv forbindelsen. Jens Houmann - Nordjyllands Erhvervsakademi

SQL – Structured Query Language Select Delete Insert Update Select fornavn, efternavn from navnetabel where fornavn = ’John’ Select * from pizzatabel Jens Houmann - Nordjyllands Erhvervsakademi

Jens Houmann - Nordjyllands Erhvervsakademi Læsning af data fra DB Jens Houmann - Nordjyllands Erhvervsakademi

Jens Houmann - Nordjyllands Erhvervsakademi Læsning af data fra DB <%@ Import Namespace="System.Data" %> <%@ Import Namespace="System.Data.OleDb" %> <script Language="c#" runat="server"> void Page_Load() { string strConnection = "Provider=Microsoft.Jet.OleDb.4.0;"; strConnection += @"Data Source=C:\inetpub\wwwroot\aspnet\data\Navne.mdb"; data_src.Text = strConnection; string strSQL = "SELECT Navn, Adresse, Telefon FROM Navnetabel"; string strResultsHolder = ""; OleDbConnection objConnection = new OleDbConnection(strConnection); OleDbCommand objCommand = new OleDbCommand(strSQL, objConnection); OleDbDataReader objDataReader = null; try objConnection.Open(); con_open.Text="Connection opened successfully.<br>"; objDataReader = objCommand.ExecuteReader(); while (objDataReader.Read() == true) strResultsHolder += objDataReader["Navn"]; strResultsHolder += " "; strResultsHolder += objDataReader["Adresse"]; strResultsHolder += "<br/>"; } objDataReader.Close(); objConnection.Close(); con_close.Text = "<br/>Connection closed.<br/>"; divListEmployees.InnerHtml = strResultsHolder; catch (Exception e) con_open.Text = "Connection failed to open successfully.<br/>"; con_close.Text = e.ToString(); </script> Jens Houmann - Nordjyllands Erhvervsakademi

Jens Houmann - Nordjyllands Erhvervsakademi Tilføje Data til DB Jens Houmann - Nordjyllands Erhvervsakademi

Jens Houmann - Nordjyllands Erhvervsakademi Tilføje data til DB Jens Houmann - Nordjyllands Erhvervsakademi

Jens Houmann - Nordjyllands Erhvervsakademi Exceptions En ulovlig handling ”kaster” en exception. Skal programmet være 100% sikkert, skal man søge at ”fange” undtagelsen. try { objConnection.Open(); con_open.Text="Connection opened successfully.<br />"; objConnection.Close(); con_close.Text="Connection closed.<br />"; } catch (Exception ex) con_open.Text="Connection failed to open.<br />"; con_close.Text=ex.ToString(); Jens Houmann - Nordjyllands Erhvervsakademi

Jens Houmann - Nordjyllands Erhvervsakademi At holde øje med fejl! Lav en fil med navnet: web.config med følgende indhold: <configuration> <system.web> <customErrors mode="Off"/> </system.web> </configuration> Placér filen i roden af hjemmekataloget Nu vil serveren vise fejlen og linienummeret. Jens Houmann - Nordjyllands Erhvervsakademi

Jens Houmann - Nordjyllands Erhvervsakademi Debug og fejlfinding <%@ Page Language=”C#” Debug=true %> Vil give en detaljeret beskrivelse af eventuel fejl. Husk af fjerne direktivet igen, pga performance. <%@ Page Language=”C#” trace = true%> Vil give mulighed for at skrive værdier og flags Trace.Write(”Antal er nu: ”, intAntal) Jens Houmann - Nordjyllands Erhvervsakademi

Jens Houmann - Nordjyllands Erhvervsakademi At programmere Omsætte løsningen af en given problemstilling til en algoritme, som kan beskrives ved hjælp af et givent sprog, som igen kan afvikles på en computer. Et program er en samling instruktioner til løsning af en eller flere opgaver. En proces er et program under afvikling. Jens Houmann - Nordjyllands Erhvervsakademi

Jens Houmann - Nordjyllands Erhvervsakademi En algoritme En beskrivelse af en fremgangsmåde til løsning af et problem hvert skridt er præcist defineret algoritmen slutter efter et endeligt antal skridt. Der kan anvendes sekvens, selektion og iteration Hvad er en god algoritme: korrekt forståelig effektiv. Jens Houmann - Nordjyllands Erhvervsakademi

Et programs egenskaber Ease of use Robustness Flexibility Reliability Portability Ease of Maintenance Jens Houmann - Nordjyllands Erhvervsakademi

Jens Houmann - Nordjyllands Erhvervsakademi Et program En algoritme beskrevet i et programmeringssprog, fx. Java, C#, Javascript. Algoritmen er den generelle løsningsbeskrivelse, programmet er en udmøntning af algoritmen. Jens Houmann - Nordjyllands Erhvervsakademi

Oversættere og fortolkere Oversætter (Compiler) Oversætter til maskinkode en gang for alle, hvorefter programmet kan køres igen og igen. Fortolker (Interpreter) Oversætter og afvikler kildekoden skridt for skridt. Fx en sætning ad gangen. Jens Houmann - Nordjyllands Erhvervsakademi

Jens Houmann - Nordjyllands Erhvervsakademi Syntaks og semantik Jeg må ikke drikke øl, når jeg er til fest. korrekt Jeg må ikke drikke fest, når jeg er til øl. semantisk forkert Jeg må ikke drik øl, når jeg er til fest. syntaktisk forkert Jens Houmann - Nordjyllands Erhvervsakademi

Jens Houmann - Nordjyllands Erhvervsakademi Fejltyper Compile-time fejl: fx syntaksfejl Run-time fejl: fx division med nul Logiske fejl: når programmet producerer forkerte resultater Jens Houmann - Nordjyllands Erhvervsakademi

Jens Houmann - Nordjyllands Erhvervsakademi Udvikling af software Specificér problemet: Formulér problemet så du får en præcis forståelse af, hvad det er for et problem der skal løses Analysér problemet: Identificér de data der skal arbejdes med, samt de resultater der skal fremkomme Design af løsningsalgoritme: Skriv ned skridt for skridt hvordan problemet kan løses. Anvend en top-down tilgang til problemet, dvs. start med at finde de overordnede delproblemer der skal løses, for derefter at gå længere og længere ned i detaljer (trinvis forfinelse) Jens Houmann - Nordjyllands Erhvervsakademi

Udvikling af software, fortsat Implementation af løsningen: Skriv et program der implementerer hvert skridt i algoritmen. Test: Test om programmet kører som det skal Vedligeholdelse: Når programmet kører hos kunden vil der typisk være fejl eller opstå krav om ændring/udvidelser af programmet Jens Houmann - Nordjyllands Erhvervsakademi

Objektorienteret programmering Objektorienteret programmering er et paradigme, der anvender objekter til at designe applikationer og programmer. Udviklet i 1960’erne, men er først slået igennem med ”nyere” programmeringssprog. C++ C# Java Lisp Jens Houmann - Nordjyllands Erhvervsakademi

Jens Houmann - Nordjyllands Erhvervsakademi OOP Object-oriented programming may be seen as a collection of cooperating objects, as opposed to a traditional view in which a program may be seen as a list of instructions to the computer. In OOP, each object is capable of receiving messages, processing data, and sending messages to other objects. Each object can be viewed as an independent little machine with a distinct role or responsibility Jens Houmann - Nordjyllands Erhvervsakademi

OOP – Grundlæggende begreber Class  A class defines the abstract characteristics of a thing (object), including the thing's characteristics (its attributes or properties) and the things it can do (its behaviors or methods or features). For example, the class Dog would consist of traits shared by all dogs, for example breed, fur color, and the ability to bark. Classes provide modularity and structure in an object-oriented computer program. A class should typically be recognizable to a non-programmer familiar with the problem domain, meaning that the characteristics of the class should make sense in context. Jens Houmann - Nordjyllands Erhvervsakademi

OOP – grundlæggende begreber Object  A particular instance of a class. The class of Dog defines all possible dogs by listing the characteristics that they can have; the object Lassie is one particular dog, with particular versions of the characteristics. A Dog has fur; Lassie has brown-and-white fur. In programmer jargon, the object Lassie is an instance of the Dog class. The set of values of the attributes of a particular object is called its state. Jens Houmann - Nordjyllands Erhvervsakademi

OOP – grundlæggende begreber Method  An object's abilities. Lassie, being a Dog, has the ability to bark. So bark() is one of Lassie's methods. She may have other methods as well, for example sit() or eat(). Within the program, using a method should only affect one particular object; all Dogs can bark, but you need one particular dog to do the barking. Jens Houmann - Nordjyllands Erhvervsakademi

OOP – grundlæggende begreber Inheritance  In some cases, a class will have "subclasses," more specialized versions of a class. For example, the class Dog might have sub-classes called Collie, Chihuahua, and GoldenRetriever. In this case, Lassie would be an instance of the Collie subclass. Subclasses inherit attributes and behaviors from their parent classes, and can introduce their own. Suppose the Dog class defines a method called bark() and a property called furColor. Each of its sub-classes (Collie, Chihuahua, and GoldenRetriever) will inherit these members, meaning that the programmer only needs to write the code for them once. Jens Houmann - Nordjyllands Erhvervsakademi

OOP – grundlæggende begreber Abstraction  Simplifying complex reality by modeling classes appropriate to the problem, and working at the most appropriate level of inheritance for a given aspect of the problem. For example, Lassie the Dog may be treated as a Dog much of the time, a Collie when necessary to access Collie-specific attributes or behaviors, and as an Animal (perhaps the parent class of Dog) when counting Timmy's pets. Jens Houmann - Nordjyllands Erhvervsakademi

Jens Houmann - Nordjyllands Erhvervsakademi OOP - øvelse Lav en klassedefinition med attributter og metoder til følgende: En bil En ansat En vare En bankkonto Jens Houmann - Nordjyllands Erhvervsakademi

Jens Houmann - Nordjyllands Erhvervsakademi OOP – i C# <%@ Page Language="C#" ContentType="text/html" %> <script runat="server"> public class PizzaKunde { // Attributter (bemærk små/store bogstaver private string kundeNavn; private int antalPizza; private string kundeTelefon; private string bemaerkning; // Construktor med een parameter public PizzaKunde (int antal) antalPizza =antal; } // Defaultconstructor public PizzaKunde () antalPizza =0; Jens Houmann - Nordjyllands Erhvervsakademi

Jens Houmann - Nordjyllands Erhvervsakademi OOP i C# public string KundeNavn { get return kundeNavn; } set kundeNavn = value; public string KundeTelefon return kundeTelefon; kundeTelefon = value; Jens Houmann - Nordjyllands Erhvervsakademi

Jens Houmann - Nordjyllands Erhvervsakademi OOP i C# public string Bemaerkning { get return bemaerkning; } set bemaerkning = value; public int AntalPizza return antalPizza; public void OptaelPizza (int intAntal) antalPizza = antalPizza + intAntal; Jens Houmann - Nordjyllands Erhvervsakademi

Jens Houmann - Nordjyllands Erhvervsakademi OOP – i C# void Page_Load() { PizzaKunde olsen = new PizzaKunde(0); olsen.KundeNavn = "Jørgen Olsen"; olsen.KundeTelefon = "98123456"; olsen.Bemaerkning = "Køber mange pizzaer"; olsen.OptaelPizza(5); lblUdText.Text += olsen.KundeNavn + "<br>"; lblUdText.Text += olsen.KundeTelefon + "<br>"; lblUdText.Text += olsen.Bemaerkning + "<br>"; lblUdText.Text += Convert.ToString(olsen.AntalPizza) + "<br>"; } Jens Houmann - Nordjyllands Erhvervsakademi

Jens Houmann - Nordjyllands Erhvervsakademi Simpelt login-system Jens Houmann - Nordjyllands Erhvervsakademi

Jens Houmann - Nordjyllands Erhvervsakademi Simpelt login-system //Denne kode indsættes i startsiden (Default.aspx) protected void btLogin_Click(object sender, EventArgs e) { if (tbUserId.Text == "Admin" && tbPassword.Text == "maagodt") Session["Godkendt"] = "OK"; Session["User"] = "Admin"; Response.Redirect("velkomst.aspx"); } else lblFejlMeddelelse.Text = "Fejl i UserId/Password"; Jens Houmann - Nordjyllands Erhvervsakademi

Jens Houmann - Nordjyllands Erhvervsakademi Simpelt login-system //Denne kode indsættes i alle aspx-filer protected void Page_Load(object sender, EventArgs e) { if (Convert.ToString(Session["Godkendt"]) != "OK") Response.Redirect("Default.aspx"); } else lblUserId.Text = Convert.ToString(Session["User"]); Jens Houmann - Nordjyllands Erhvervsakademi

Et mere avanceret login-system Jens Houmann - Nordjyllands Erhvervsakademi

Et mere avanceret login-system Jens Houmann - Nordjyllands Erhvervsakademi

Et mere avanceret login-system protected void btLogin_Click(object sender, EventArgs e) { bool Godkendt = false; string strUser = ""; string strPassword = ""; OleDbConnection MyConnection = new OleDbConnection(); MyConnection.ConnectionString = ConfigurationManager.ConnectionStrings["UserConnection"].ConnectionString; string strSQL = System.Configuration.ConfigurationManager.AppSettings.Get("SQLLaesDB"); OleDbCommand objCommand = new OleDbCommand(strSQL, MyConnection); OleDbDataReader objDataReader = null; try MyConnection.Open(); objDataReader = objCommand.ExecuteReader(); while (objDataReader.Read() == true) strUser = Convert.ToString(objDataReader["UserId"]); strPassword = Convert.ToString(objDataReader["Password"]); if (strUser == tbUserId.Text && strPassword == tbPassword.Text) Godkendt = true; } MyConnection.Close(); objDataReader.Close(); Jens Houmann - Nordjyllands Erhvervsakademi

Jens Houmann - Nordjyllands Erhvervsakademi Tæller Jens Houmann - Nordjyllands Erhvervsakademi

Jens Houmann - Nordjyllands Erhvervsakademi Tæller <%@ Page Language="C#" ContentType="text/html" Inherits="CounterPage" Src="CounterPage.cs" %> <html> <head> <title>Velkomstside med tæller</title> <LINK REL="Stylesheet" HREF="StyleSheet/styles.css" TYPE="text/css"> </head> <body> <h1>Velkommen til vores startside med en tæller</h1> <h2>For at se tælleren skal du kigge source-koden!</h2> <p class="usynligt">Du er besøgende nummer <%= CounterValue() %> på denne side!</p> </body> </html> Jens Houmann - Nordjyllands Erhvervsakademi

Jens Houmann - Nordjyllands Erhvervsakademi Tæller using System.IO; public class CounterPage : System.Web.UI.Page { public int CounterValue() { FileStream s = new FileStream(Server.MapPath("data/Counter.dat"), FileMode.OpenOrCreate); int n = 0; try { BinaryReader r = new BinaryReader(s); n = r.ReadInt32(); } catch {} if (Session["counted"]!= null) { } else n++; Session["counted"]=1; s.Seek(0, SeekOrigin.Begin); BinaryWriter w = new BinaryWriter(s); w.Write(n); s.Close(); return n; Jens Houmann - Nordjyllands Erhvervsakademi

Jens Houmann - Nordjyllands Erhvervsakademi Dato-Tid Jens Houmann - Nordjyllands Erhvervsakademi

Jens Houmann - Nordjyllands Erhvervsakademi Dato-Tid <script runat=server> public void page_load(){ DateTime MinDato = DateTime.Now; OurLabel.Text = "MinDato: " + MinDato + "<BR><BR>"; OurLabel.Text += "<B><U>Date Properties:</U></B><BR>"; OurLabel.Text += "MinDato.Hour: " + MinDato.Hour + "<BR>"; OurLabel.Text += "MinDato.Day: " + MinDato.Day + "<BR>"; OurLabel.Text += "MinDato.DayOfWeek: " + MinDato.DayOfWeek + "<BR>"; OurLabel.Text += "MinDato.DayOfYear: " + MinDato.DayOfYear + "<BR>"; OurLabel.Text += "MinDato.Month: " + MinDato.Month + "<BR>"; OurLabel.Text += "MinDato.Year: " + MinDato.Year + "<BR><BR>"; OurLabel.Text += "<B><U>Date Methods:</U></B><BR>"; OurLabel.Text += "MinDato.ToShortTimeString: " + MinDato.ToShortTimeString() + "<BR>"; OurLabel.Text += "MinDato.ToLongTimeString: " + MinDato.ToLongTimeString() + "<BR>"; OurLabel.Text += "MinDato.ToShortDateString: " + MinDato.ToShortDateString() + "<BR>"; OurLabel.Text += "MinDato.ToLongDateString: " + MinDato.ToLongDateString() + "<BR>"; OurLabel.Text += "MinDato.AddDays(2): " + MinDato.AddDays(2) + "<BR>"; OurLabel.Text += "MinDato.AddMonth(4): " + MinDato.AddMonths(4) + "<BR>"; OurLabel.Text += "MinDato.AddYear(1): " + MinDato.AddYears(1) + "<BR>"; } </script> Jens Houmann - Nordjyllands Erhvervsakademi

Jens Houmann - Nordjyllands Erhvervsakademi Dato-Tid Jens Houmann - Nordjyllands Erhvervsakademi

Dato-Tid – Visual Basic <% Response.Write("Dato: " & now() & "<br>") Response.Write("Dag: " & day(now()) & "<br>") Response.Write("Time: " & hour(now()) & "<br>") Response.Write("Minutter: " & minute(now()) & "<br>") Response.Write("Sekunder: " & second(now()) & "<br>") Response.Write("Måned: " & month(now()) & "<br>") Response.Write("År: " & year(now()) & "<br>") Dim dag as DateTime = DateTime.Now Response.Write("UgeDagsnummer: " & dag.dayofweek & "<br>") Dim ugedage() as string = {"Søndag", "Mandag", "Tirsdag", "Onsdag", "Torsdag", "Fredag", "Lørdag"} Response.Write("Ugedag: " & ugedage(dag.dayofweek) & "<br>") Dim elleve as date = #09/11/2001# Dim WD As Long = DateDiff(DateInterval.day, elleve, now()) Response.Write("Antal dage siden 11. september 2001: " & WD & "<BR>") %> Jens Houmann - Nordjyllands Erhvervsakademi

Data Rendering Controls Kan læse XML, Databaser, ArrayLists Data Binding At sætte data i en Rendering Control Først assignes datasource Derefter bindes data (udfyldes) Template Hvorledes udskriften ser ud på skærmen Kun nødvendig at angive hvis default ikke skal anvendes Jens Houmann - Nordjyllands Erhvervsakademi

Data Rendering Controls DataGrid Kan tilføjes dataeditering og linkknapper DataList Kan vise data vha templates Repeater Kan vise en linie for hver datarække Kan ikke selectes eller editeres Jens Houmann - Nordjyllands Erhvervsakademi

Datagrid datagrid3.aspx <%@ Import Namespace="System.Data" %> <%@ Import Namespace="System.Data.OleDb" %> <script Language="c#" runat="server"> void Page_Load() { string strConnection = "Provider=Microsoft.Jet.OleDb.4.0;"; strConnection += @"Data Source=" + Server.MapPath("Navne.mdb"); string strSQL = "SELECT * FROM Navnetabel"; DataSet objDataSet = new DataSet(); OleDbConnection objConnection = new OleDbConnection(strConnection); OleDbDataAdapter objAdapter = new OleDbDataAdapter(strSQL, objConnection); objAdapter.Fill(objDataSet, "Navnetabel"); DataView objDataView = new DataView(objDataSet.Tables["Navnetabel"]); dgNameList.DataSource=objDataView; dgNameList.DataBind(); } </script> <html> <body> <asp:datagrid id="dgNameList" runat="server" /><br /> </body> Jens Houmann - Nordjyllands Erhvervsakademi

Jens Houmann - Nordjyllands Erhvervsakademi Datagrid Jens Houmann - Nordjyllands Erhvervsakademi

Datagrid datagrid.aspx <body bgcolor="#FFFFFF" text="#000000"> <ASP:DataGrid id="OurDataGrid" BorderWidth="1" BorderColor="#000000" CellPadding="3" CellSpacing="0" Font-Name="Verdana" Font-Size="12px" HeaderStyle-BackColor="#AAAAAA" ItemStyle-BackColor="#EEEEEE" AutoGenerateColumns="false" runat="server"> <Columns> <asp:BoundColumn HeaderText="Navn" DataField="Navn" /> HeaderText="Telefonnr" DataField="Telefon" /> </Columns> </asp:DataGrid> </body> Jens Houmann - Nordjyllands Erhvervsakademi

Jens Houmann - Nordjyllands Erhvervsakademi Datagrid Jens Houmann - Nordjyllands Erhvervsakademi

Datagrid med sortering datagridsort.aspx Jens Houmann - Nordjyllands Erhvervsakademi

Datagrid med sortering datagridsort.aspx Se koden her Jens Houmann - Nordjyllands Erhvervsakademi

DataGrid med delete/select Jens Houmann - Nordjyllands Erhvervsakademi

Jens Houmann - Nordjyllands Erhvervsakademi DataList Jens Houmann - Nordjyllands Erhvervsakademi

Jens Houmann - Nordjyllands Erhvervsakademi DataList <body topmargin="0" leftmargin="0" marginwidth="0" marginheight="0"> <ASP:DataList id="MyDataList" RepeatColumns="3" CellPadding="10" runat="server"> <ItemTemplate> <font face="Verdana, Arial, Helvetica, sans-serif"> <b>Navn: </b><%# DataBinder.Eval(Container.DataItem, "Navn") %><br> <b>Adresse: </b><%# DataBinder.Eval(Container.DataItem, "Adresse") %><br> <b>By: </b><%# DataBinder.Eval(Container.DataItem, "Postnr") %> <%# DataBinder.Eval(Container.DataItem, "Byen") %><br> <b>Telefon: </b><%# DataBinder.Eval(Container.DataItem, "Telefon") %><br><br> </font> </ItemTemplate> </ASP:DataList> Jens Houmann - Nordjyllands Erhvervsakademi

Jens Houmann - Nordjyllands Erhvervsakademi DataList Jens Houmann - Nordjyllands Erhvervsakademi

Jens Houmann - Nordjyllands Erhvervsakademi DataList Se koden her Jens Houmann - Nordjyllands Erhvervsakademi

Jens Houmann - Nordjyllands Erhvervsakademi Repeater Jens Houmann - Nordjyllands Erhvervsakademi

Jens Houmann - Nordjyllands Erhvervsakademi Repeater Se koden her Jens Houmann - Nordjyllands Erhvervsakademi

Jens Houmann - Nordjyllands Erhvervsakademi Repeater Jens Houmann - Nordjyllands Erhvervsakademi

Jens Houmann - Nordjyllands Erhvervsakademi Repeater Se koden her: Jens Houmann - Nordjyllands Erhvervsakademi

Jens Houmann - Nordjyllands Erhvervsakademi Databaser Datasæt er centralt Datasæt er en box med dynamiske egenskaber Datasæt kan fyldes fra en source, eller dannes fra scratch. Datasæt kan klare sig uden database. System.Data namespacet skal inkluderes. Når datasættet er fyldt, skal det bindes. Data i datasæt kan læses, opdateres, dannes eller bruges som style Jens Houmann - Nordjyllands Erhvervsakademi

Jens Houmann - Nordjyllands Erhvervsakademi DataBind Jens Houmann - Nordjyllands Erhvervsakademi

Jens Houmann - Nordjyllands Erhvervsakademi DataBind <script language="CS" runat="server"> void Index_Changed(Object Sender ,EventArgs e) { DataBind(); } </script> <html><body> <form runat="server"> <asp:Listbox runat="server" id="lbColors" width="150" AutoPostBack=true rows="1" SelectionMode="Single" OnSelectedIndexChanged="Index_Changed" > <asp:Listitem value="1" selected>Red</asp:Listitem> <asp:Listitem value=" 2">Blue</asp:Listitem> <asp:Listitem value=" 3">Green</asp:Listitem> <asp:Listitem value=" 4">Yellow</asp:Listitem> </asp:Listbox><p> <asp:Label id="lblMessage" runat="server" Text='<%# lbColors.SelectedItem.Text %>' /> </form> </body></html> Jens Houmann - Nordjyllands Erhvervsakademi

DataBind – sidste eksempel Jens Houmann - Nordjyllands Erhvervsakademi

Databind – sidste eksempel <%@ Page Language="C#" %> <script language="C#" runat="server"> void Page_Load(Object Sender, EventArgs E) { if (!Page.IsPostBack) { ArrayList values = new ArrayList(); values.Add ("Aab"); values.Add ("Arsenal"); values.Add ("FCK"); values.Add ("AGF"); values.Add ("B52"); values.Add ("Aalborg Freja"); DropDown1.DataSource = values; DropDown1.DataBind(); } void VaelgHold(Object sender, EventArgs e) { Label1.Text = "Du valgte: " + DropDown1.SelectedItem.Text; </script> <html> <head> </head> <body> <h3><font face="Verdana">DataBinding DropDownList</font></h3> <form runat=server> <asp:DropDownList id="DropDown1" runat="server" /> <asp:button Text="Vælg Hold" OnClick="VaelgHold" runat=server/><br> <asp:Label id=Label1 font-name="Verdana" font-size="10pt" runat="server" /> </form> Jens Houmann - Nordjyllands Erhvervsakademi

Jens Houmann - Nordjyllands Erhvervsakademi Pizza-time Jens Houmann - Nordjyllands Erhvervsakademi

Jens Houmann - Nordjyllands Erhvervsakademi DataBind OBS: Husk: if not page.is.postback (side300) Jens Houmann - Nordjyllands Erhvervsakademi

Jens Houmann - Nordjyllands Erhvervsakademi List Controls Indbyggede metoder til at vise, slette og redigere datasæt. 3 typer: Repeater Vis data, indegn predefineret display, layout styres via templates, tilpasningsvenlig. Datalist Mulighed for at ændre, slette data Datagrid Som de to andre, men med mere funktionalitet, sorteringsmulilghed, side x af y, kerne i databehandling. Jens Houmann - Nordjyllands Erhvervsakademi

Jens Houmann - Nordjyllands Erhvervsakademi Datalist Jens Houmann - Nordjyllands Erhvervsakademi

Jens Houmann - Nordjyllands Erhvervsakademi Datalist Se koden her: Jens Houmann - Nordjyllands Erhvervsakademi

Jens Houmann - Nordjyllands Erhvervsakademi Datagrid Jens Houmann - Nordjyllands Erhvervsakademi

Jens Houmann - Nordjyllands Erhvervsakademi Datagrid Se koden her: Jens Houmann - Nordjyllands Erhvervsakademi

Jens Houmann - Nordjyllands Erhvervsakademi ADO.NET Baseres på XML Interaktion uden connection Ingen lås af database XML er 100% tekstbaseret. Husk at datasæt er adskilt fra DB (disconnected) Ændringer i datasæt har ingen betydning for DB Datasæt har properties og metoder Jens Houmann - Nordjyllands Erhvervsakademi

Jens Houmann - Nordjyllands Erhvervsakademi ADO.NET Jens Houmann - Nordjyllands Erhvervsakademi

Jens Houmann - Nordjyllands Erhvervsakademi ADO.NET <%@ Page Language="C#" debug = "true"%> <%@ Import Namespace="System.Data" %> <%@ Import Namespace="System.Data.OleDb" %> <script runat="server"> void Page_Load(Object Sender ,EventArgs e) { OleDbConnection OurConnection; OleDbCommand OurCommand; OleDbDataReader OurDataReader; OurConnection = new oleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=c:/inetpub/wwwroot/iu/navne.mdb"); OurConnection.Open(); OurCommand = new OleDbCommand("Select * From Navnetabel" ,OurConnection); OurDataReader = OurCommand.ExecuteReader(); while (OurDataReader.Read()) Response.Write(OurDataReader.GetInt32(0) + " "); Response.Write(OurDataReader["Navn"] + " " + OurDataReader["Telefon"] + "<br>"); } OurConnection.Close(); </script> <html><body> <h1>Eksempel på udskrivning med ADO-datareader</h1> </body></html> Jens Houmann - Nordjyllands Erhvervsakademi

Jens Houmann - Nordjyllands Erhvervsakademi ADO.NET Brug: GetByte GetInt32 GetString GetDate OleDBDataAdapter skal bruges ved opdatering HUSK: at lukke og slukke efter dig! Jens Houmann - Nordjyllands Erhvervsakademi

Jens Houmann - Nordjyllands Erhvervsakademi ADO.NET ADO.NET består af 2 dele: Datasættet Managed providers DS->MP->Storage Storage kan være: OleDB Som kan håndtere alle kendte databaser SQL Som bruger SQL-server 7.0 CLR styrer tabeller, data, streams Jens Houmann - Nordjyllands Erhvervsakademi

Repetition af databaseforbindelse string strSQL; OleDbConnection OurConnection; OleDbCommand OurCommand; OleDbDataReader OurDataReader; strSQL = "Select * From Navnetabel"; OurConnection = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=c:/inetpub/wwwroot/aspnet/data/navne.mdb"); OurConnection.Open(); OurCommand = new OleDbCommand(strSQL ,OurConnection); OurDataReader = OurCommand.ExecuteReader(); while (OurDataReader.Read()) { lblUddata.Text += OurDataReader["Navn"].ToString() + "<br>"; Jens Houmann - Nordjyllands Erhvervsakademi

Jens Houmann - Nordjyllands Erhvervsakademi Fremfinde data OleDbCommand OurCommand; OleDbDataReader OurDataReader; strSQL = "Select * From Navnetabel where Navn = '" + tbNavn.Text + "'"; Eller: strSQL = "Select * From Navnetabel where Navn like '" + tbNavn.Text + "%'"; strSQL = "Select * From Navnetabel where Navn like ’" + tbNavn.Text + "%'"; Jens Houmann - Nordjyllands Erhvervsakademi

Jens Houmann - Nordjyllands Erhvervsakademi Fremfinde data Jens Houmann - Nordjyllands Erhvervsakademi

Jens Houmann - Nordjyllands Erhvervsakademi Fremfinde data Jens Houmann - Nordjyllands Erhvervsakademi

Jens Houmann - Nordjyllands Erhvervsakademi Fremfinde data if (cbDelNavn.Checked) { strSQL = "Select * From Navnetabel where Navn like '%" + tbNavn.Text + "%'"; } else strSQL = "Select * From Navnetabel where Navn like '" + tbNavn.Text + "%'"; Jens Houmann - Nordjyllands Erhvervsakademi

Opdatering af Database Tilføjelse af poster. Opbyg SQL-string med INSERT INTO… Husk at ASPNET bruger skal have skriveadgang. Husk at placere DB (og filer) i et katalog for sig selv. Jens Houmann - Nordjyllands Erhvervsakademi

Indsættelse af nye data i DB strSQL = "Insert INTO Navnetabel ( Navn, Adresse, Postnr, Byen, Nationalitet, Telefon, Fodselsdag, Bemaerk) Values ('"; strSQL += strNavn + "', '"; strSQL += strAdresse + "','"; strSQL += strPostnr + "','"; strSQL += strBy + "','"; strSQL += strNationalitet + "','"; strSQL += strTelefon + "','"; strSQL += strFødselsdag + "','"; strSQL += strBemærk + "')"; Response.Write(strSQL); OleDbConnection myConnection = new OleDbConnection( "PROVIDER=Microsoft.Jet.OLEDB.4.0;DATA Source=c:\\inetpub\\wwwroot\\aspnet\\Data\\Navne.mdb" ); myConnection.Open(); OleDbCommand myCommand = new OleDbCommand( strSQL, myConnection ); myCommand.ExecuteNonQuery(); myConnection.Close(); Jens Houmann - Nordjyllands Erhvervsakademi

Et eksempel på indsættelse Se programmet indtastnavne.aspx Jens Houmann - Nordjyllands Erhvervsakademi

Et eksempel på indsættelse Jens Houmann - Nordjyllands Erhvervsakademi

Hent data fra DB til listbox dropmeddb.aspx <%@ Page Language="C#" %> <%@ import Namespace="System.Data" %> <%@ import Namespace="System.Data.OleDb" %> <script runat="server"> void Page_Load(Object Sender, EventArgs E) { OleDbConnection objConnection; OleDbCommand objCommand; OleDbDataReader objDataReader; objConnection = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=c:/inetpub/wwwroot/iu/navne.mdb"); objConnection.Open(); objCommand = new OleDbCommand("SELECT * FROM Navnetabel", objConnection); drpData.DataTextField = "Navn"; drpData.DataSource = objCommand.ExecuteReader(CommandBehavior.CloseConnection); drpData.DataBind(); drpData.Items.Insert(0, "-- Vælg et Navn --"); } </script> <html> <head> </head> <body> <form runat="server"> <asp:DropDownList id="drpData" runat="server"></asp:DropDownList> </form> </body> </html> Jens Houmann - Nordjyllands Erhvervsakademi

DropDownMedDataFraDB Jens Houmann - Nordjyllands Erhvervsakademi

DropDown med ekstra visning Se koden DropDownMedDataFraDB.aspx Jens Houmann - Nordjyllands Erhvervsakademi

DropDown Med data fra DB Jens Houmann - Nordjyllands Erhvervsakademi

Jens Houmann - Nordjyllands Erhvervsakademi Referencer Bøger: J. Richter, "Applied Microsoft .NET Framework Programming" T. Thai and H. Lam, ".NET Framework Essentials" Web sites: http://msdn.microsoft.com/net http://www.gotdotnet.com/ www.asp.net/Tutorials/Quickstart.aspx Jens Houmann - Nordjyllands Erhvervsakademi

Jens Houmann - Nordjyllands Erhvervsakademi Isolated Storage Svarer til cookies Data gemmes hos clienten i c:\documents and setings\user\local data Kan kun tilgås fra samme script. Jens Houmann - Nordjyllands Erhvervsakademi

Isolated Storage – i Visual Basic <%@ Page Language="VB" %> <%@ Import Namespace="System.IO" %> <%@ Import Namespace="System.IO.IsolatedStorage" %> <script runat="server"> sub Page_Load(Sender as Object, e as EventArgs) dim stream as IsolatedStorageFileStream dim writer as StreamWriter dim data as string = "blue" stream = new IsolatedStorageFileStream("colors.txt", _ FileMode.OpenOrCreate) writer = new StreamWriter(stream) writer.WriteLine(data) writer.Close() end sub </script> <html><body> </body></html> Jens Houmann - Nordjyllands Erhvervsakademi

Jens Houmann - Nordjyllands Erhvervsakademi Buffering Jens Houmann - Nordjyllands Erhvervsakademi

Jens Houmann - Nordjyllands Erhvervsakademi Buffering <%Response.Buffer = False %> Skal være første kodelinie inden data er genereret. Jens Houmann - Nordjyllands Erhvervsakademi

Jens Houmann - Nordjyllands Erhvervsakademi Buffering <%@ Page Language="VB" %> <script runat="server"> sub Page_Load(obj as object, e as eventargs) dim i as integer Response.Write("Before flush<br>") Response.Flush() for i = 0 to 5000 'just wasting time next Response.Write("After flush, before clear<br>") Response.Clear() Response.Write("After clear, before end<br>") Response.End Response.Write("After end<br>") end sub </script> <html><body> </body></html> Jens Houmann - Nordjyllands Erhvervsakademi

Opgave – gæt-hvad-jeg-tænker-på Lav et program GaetTal.aspx, der kan finde et tilfældigt tal mellem 1 og 500. Du skal så på færrest muligt antal gæt nå frem til tallet. Programmet må svare: Dit gæt er for lavt! Dit gæt er for højt! Hurra, du gættede det på xx forsøg! Jens Houmann - Nordjyllands Erhvervsakademi

Søren Sømand siger tak for denne gang Jens Houmann - Nordjyllands Erhvervsakademi