280 likes | 419 Views
Inmatning till databaser. Introduktion. Formulär. WEB-SERVER. KLIENT. Överför data (html). Tar fram efter- frågade filen. Den som surfar matar in uppgifter. Skicka tillbaks data. Bearbetar. Metoden Post eller Get. Formulär. Html-element <input type=”text” id=”x”/>
E N D
Formulär WEB-SERVER KLIENT Överför data (html) Tar fram efter-frågade filen Den som surfar matar in uppgifter Skicka tillbaks data Bearbetar Metoden Post eller Get
Formulär • Html-element<input type=”text” id=”x”/> • Html-kontroller<input type=”text” id=”x” runat=”server”> • Webserver-kontroller<asp:textbox id=”x” runat=”server”/>
Formulär-skillnader • Html-elementskickas exakt som det skrivs • Html-kontrollerx.value =”lite text i rutan!”, man kan programmera till viss del • Webserver-kontrollersom ovan + anpassning till olika webläsare + komplexa, behöver inte bli ett html-element + hanterar händelser och har egenskaper
Olika Webbserverkontroler • Relativt enkla: Label, Button, TextBox, CheckBox, CheckBoxList, RadioButton, RadioButtonlist, DropDownList • Mer komplicerade: Calendrar, DataGrid, DataList, Repeater • Annat: Table, TableCell, TableRow, Image, ImageButton, HyperLink, AdRotator, 5st Valideringskontroller
Olika Webbserverkontroler • En behållare: Panel • Alla skrivs som <asp:kontrollnamn id=”” runat=”server”/> • I Vs.Net: mellanslag ger olika alternativ, att klicka i designläge ger en funktion för en händelse, Page_Load, Button1_Click, SelectedItem_Changed
Lite om PostBack • Kontrollerna har en egenskap Autopostback – styr postbackningen • Sidan Page har en egenskap Page.IsPostBack – används i Page:load för att avgöra om sidan laddas första gången eller någon av de efterföljande • Visa exempel filmtest – webform1
User Controls • Som SSI i html • Extension .ascx • Inga html eller body taggar • Inkluderas i aspx-sidor • Kan innehålla webserverkontroller och hantera data mellan aspx och ascx-sidorna
User Controls – bra till: • Sidhuvud/sidfot • Navigeringsmenyer • …
User Controls – sidfot.ascx: <tr> <td > Tillämpad fysik och …<br> Databasteknik och Webb..., 5p </td> <td> <img … > </td> </tr>
UC använd sidfot.ascx: Längst upp på sidan: <%@ Register Tagprefix=”my" TagName=”foot" src="sidfot.ascx" %> Man registrerar komponenten, med prefix, namn och källfil
UC använd sidfot.ascx: I aspx-koden: <table> <my:head runat=”server”/> … <my:foot runat="server" /> </table>
UC vidare lyx • Baka in webserverkontroller • Publika egenskaper i scriptdelen – Set/Get-kommandon • Dessa återkommer i kontrollens asp.net-kod i ascx-filen • Och i aspx-filen som vanliga egenskaper typ: <my:foot backcolor=”beige”>
Inmatning till Databaser • Steg ett: SQL-satsen testas i Access • Steg två: Samma sträng körs i asp.net • Steg tre: Delas av SQL-strängen ersätts med texter och egenskaper från webbserverkontroller. Exempel:…VALUES (’Pelle’, ’1’……VALUES (’ ” & textbox1.text & ” ’1’…
ADO – OleDb • ADO- Active Data Objects • Managed Providers för databaser • OleDb – Access, MySQL m.fl. • SQL – för SQL-server
ADO – OleDbConnection • Importera först NameSpacetImports System.Data.OleDb • Skapa sedan en instans av Objektet OleDbConnection. Konstruktorn har en parameter – anslutnings-strängen: • Dim ObjConn As New OleDBConnection(”Provider=…;Data Source=…”)
ADO – OleDbConnection • Har två metoder: • Open() • Close() • Exempelvis: ObjConn.Open()
ADO-OleDbCommand • Skapa först en instans av Objektet OleDbCommand. Konstruktorn har fyra olika parameterlistor. 1. ()2. (SQL-sträng)3. (SQL-sträng, Obj OleDbConnection)4. (SQL-sträng, Obj OleDbConnection, Obj OleDbTransaction)
ADO-OleDbCommand • Exempel:Dim ObjCmd As New OleDbCommand(”SQL-sträng”, ObjConn) • Exekvera: ObjCmd.ExecuteNonQuery
ADO-OleDbCommand • Metoden ExecuteNonQuery • Metoder Connection.Open och Close • Egenskapen CommandText • Egenskapen Connection
Detta behövs för insert, update och delete • Imports System.Data.OleDb • Dim ObjConn as New OleDbConnection(…) • Dim ObjCmd as New OleDbCommand(…) • ObjConn.Open() • ObjCmd.ExecuteNonQuery() • ObjConn.Close()(Exemplet förutsätter SQL-sträng och anslutningssträng i konstruktorerna)
Validering • Validering av formulär – varför. • Egenskap hos asp.net – texten försvinner inte från textrutorna • Validera utifrån fem olika alternativ • Validationskontrollen hör till aspx-sidan • Validering av innehåll i annat objekt, t.ex. asp:textBox … (inte alla)
Valideringsordning Server Klient 2. Användaren matar in data 1. Skicka html-kod 3. Klientscript kollar datat 4. Giltigt data? Nej Avbryt och visa felmeddelanden 6. Ta emot och bearbeta datat. Ja 5. Skicka data!
Valideringstyper • Tomt fält • Jämför minnehåll med… • Kontrollera över och nedre gräns • Kontrollera fältets form • Gör en egen validering
Validering olika typer • Tomt – asp:RequiredFieldValidator • Jämför - asp:CompareValidator • Storlek – asp:RangeValidator • Form – asp:RegularExpressionsValidator • Egen – asp:CustomValidator
Validering - bra att veta • Page.IsValid – användbar i scriptblocket, anger om hela sidan är validerad och klar • Egenskapen ”dynamic” hos kontrollen • Validationsummary – text t.ex. i ett popup-fönster
Databaser på webben • Nästa föreläsning databindning, databindningskontroller, innehållet i databasen till webben