Fetstil Fetstil Kursiv Understrykning linje färgläggning tabellverk Punktlista Nummerlista Vänster Centrerat högerställt Utfyllt Länk Bild htmlmode
  • Forum & Blog
    • Forum - översikt
      • .Net
        • asp.net generellt
        • c#
        • vb.net
        • f#
        • silverlight
        • microsoft surface
        • visual studio .net
      • databaser
        • sql-server
        • databaser
        • access
        • mysql
      • mjukvara klient
        • datorer och komponenter
        • nätverk, lan/wan
        • operativsystem
        • programvaror
        • säkerhet, inställningar
        • windows server
        • allmänt
        • crystal reports
        • exchange/outlook
        • microsoft office
      • mjukvara server
        • active directory
        • biztalk
        • exchange
        • linux
        • sharepoint
        • webbservers
        • sql server
      • appar (win/mobil)
      • programspråk
        • c++
        • delphi
        • java
        • quick basic
        • visual basic
      • scripting
        • asp 3.0
        • flash actionscript
        • html css
        • javascript
        • php
        • regular expresssion
        • xml
      • spel och grafik
        • DirectX
        • Spel och grafik
      • ledning
        • Arkitektur
        • Systemutveckling
        • krav och test
        • projektledning
        • ledningsfrågor
      • vb-sektioner
        • activeX
        • windows api
        • elektronik
        • internet
        • komponenter
        • nätverk
        • operativsystem
      • övriga forum
        • arbete karriär
        • erbjuda uppdrag och tjänster
        • juridiska frågor
        • köp och sälj
        • matematik och fysik
        • intern information
        • skrivklåda
        • webb-operatörer
    • Posta inlägg i forumet
    • Chatta med andra
  • Konto
    • Medlemssida
    • Byta lösenord
    • Bli bonsumedlem
    • iMail
  • Material
    • Tips & tricks
    • Artiklar
    • Programarkiv
  • JOBB
  • Student
    • Studentlicenser
  • KONTAKT
    • Om pellesoft
    • Grundare
    • Kontakta oss
    • Annonsering
    • Partners
    • Felanmälan
  • Logga in

Hem / Artiklar / Titel på artikeln

Ett Administrations script för webb baserad databas del 3

Postad 2005-01-12 av Benni Svensson i sektionen ASP.NET, C#, Okategoriserat med 0 Kommentarer | Läst av: 4763, Betyg: 96%

Förord

I de föregående artiklarna, så tillverkades grunderna till vad vi skall slutföra idag. Databasen är klar, style filen och funktions filen likaså. Du bör ha ett fungerande system nu, som klarar av att lägga till nya städer och nya intressen samt editering av dessa. Det som nu återstår, är det mest spännande i hela denna artikelserie, att kunna lägga till nya medlemmar, knyta samman de med en stad samt lägga till deras intressen(ett eller flera). Vi skall också kunna ändra och ta bort(editera) dessa medlemmar, och det blir det sista vi gör idag.
Innehåll
  » Fortsätt med asp sidorna
  » newMember.asp
  » update.asp 5
  » editMember.asp
  » MemberUpdRec.asp
  » update.asp
Relaterade artiklar
  » Ett Administrations script för webb baserad databas Del 1
  » Ett Administrations script för webb baserad databas del 2


Fortsätt med asp sidorna

Det vi skall börja med är att lägga till en ny medlem. Vi måste också lägga till en option(combobox) så
att vi kan välja vilken stad medlemmen bor i. Vi skall också lägga in en checkbox för varje
intresseområde som finns i databasen. Detta löserr vi med en enkel loop.


newMember.asp



<%=Request.QueryString("message")%>


<%'Här lägger vi in nya medlemmar
'Först så hämtas alla städerna
set rs= server.createobject("adodb.recordset")
SQL="SELECT CityID, City FROM t_City ORDER BY City"
rs.open SQL, Connection, 2, 2
%>










Skriv in nya medlemar.




<%'Om vi får ett error skrivs det ut här
If Request.Querystring("ERROR") <> "" Then
Response.Write "
"
Response.Write Request.Querystring("Error")
Response.Write "
"
End If
%> 
Namn


Address


Stad






Välj intressen.




<%'Här tar vi fram alla intressen som finns i databasen
set rs= server.createobject("adodb.recordset")
SQL="SELECT i_ID, Interest FROM t_Interest ORDER BY Interest"
rs.open SQL, Connection, 2, 2
if NOT rs.EOF THEN
DO WHILE NOT RS.EOF
%>
"> <%=RS("Interest")%>


<%
RS.MOVENEXT
LOOP
'Städar upp
RS.CLOSE
SET RS=NOTHING
END IF
%>











Viktigt att notera är att option.value knyts mot rs("CityID") och att texten(utanför option taggen)
har vi rs("CityID").Orsaken är den, att vi sparar CityId i databasen ,medans City är med för
läsbarhetens skull.
Vi gör precis samma sak med checkboxen, sparar rs(”i_Id”) i checkboxens value och skriver ut
RS("Interest") på utsidan av taggen.


update.asp 5

Tillbaka igen till update.asp där vi skall lägga till den nya medlemmen. För att få in alla intressen,
så måste vi först splita upp querystringen och loopa igenom, för att kunna göra en insert för
varje intresse.

Case "New Member"
'Ny medlem, först kollar vi om strängen är tom
If LEN(Request.Form("City"))=0 then
Response.Redirect "newMember.asp?ERROR=" & Server.URLEncode("Du måste fylla i ett namn!!")
else
'Annars så lägger vi in medlemen
sName = Request.Form("Name")
sStreet = FixaTecken(Request.Form("Street"))
sCity = Request.Form("City")
SQL = ("Insert INTO t_Member(Name,Street,City)VALUES( '" & sName & "','" & sStreet & "'," & sCity & " )")

Connection.Execute(SQL)

Response.Write "
" & sName & " är nu registrerad!
"
'Vi lägger im medlemens intresse
Set RS = Server.CreateObject("ADODB.Recordset")
SQL ="Select m_Id FROM t_Member WHERE Name = '" & sName & "'"
RS.Open SQL, Connection, 3, 3
IF NOT RS.EOF then
'Vi måste splita ifrån request.form, så att vi kan lägga in ALLA intressen
sIntrerest = Request.form("Interest")
aIntr = split(sIntrerest, ",", -1, 1)

For i = 0 to ubound(aIntr)
SQL = ("Insert INTO t_MemberInterest(m_Id,i_ID)VALUES( " & RS("m_Id") & "," & aIntr(i) & " )")
Connection.Execute(SQL)
Next
ELSE
Response.Write"Ingen post är registrerad"
END IF
RS.Close
Set RS=Nothing
end if

Vi börjar med att kolla så vi har ett namn att jobba med, därefter så gör vi variabler av våra
request.form(name,street och city) samt gör en insert.
Därefter så gör vi en databas förfrågan om vilket ID som våran insert genererade i databasen.
Sen kom spliten, en ny insert för varje intresse och efter uppstädning så var det klart.


editMember.asp

Den här filen är väldigt lik editCity.asp och editInterest.asp.



<%=Request.QueryString("message")%>



<%'Här hämtar vi alla registrerade medlemmar
Dim rst,strSQL,CurrentRecord,j,rowColor
Const adOpenStatic = 3
Const adLockReadOnly = 1
Const adCmdText = 1
strSQL="SELECT t_Member.m_id, t_Member.Name, t_Member.Street, t_City.City " & _
" FROM t_City INNER JOIN t_Member ON t_City.CityID = t_Member.City"

Set rst = Server.CreateObject("ADODB.Recordset")
rst.Open strSQL, connection, adOpenStatic, _
adLockReadOnly, adCmdText

CurrentRecord = 0
j = 0
If Not rst.EOF Then
%>








<%
Do While Not rst.EOF
'Färga varannan rad
j = j + 1
if j mod 2 then
rowColor = "#FFF7F2"
else
rowColor = "#FFFFFF"
end if
%>






<%
rst.MoveNext
Loop
Else
%>
Inga Kategorier Registrerade!
<%
End If
'Städar upp
rst.Close
Set rst=Nothing
%>
ID Namn Adress Stad

">
<%= rst("m_Id") %>
<%= rst("Name") %>  <%= rst("Street") %>  <%= rst("City") %> 





MemberUpdRec.asp

Med denna fil, så laddar vi in de värden som vi har i databasen, beroende på vilken post som
klickades på i editMember.asp.
Filen har samma grundutförande som newMember.asp, vad gäller kontrollerna och liksom
newMember.asp så loopar vi igenom för att hitta alla städer och alla intressen.
Vad som skiljer är, att i option taggen, så lägger vi också in vad vi har sparat i databasen,
för läsbarhetens skull.
Intressena loppas också men inne i denna loop, så ligger ett SQL-anrop till databasen, som
kollar om detta i_ID är inskrivet, är den det så skall den checkas, annars inte.




<%=Request.QueryString("message")%>










<%'Här initiera vi de olika recordseten, samt dimmar alla variabler
Dim rst,RS1,RS2,SQL1,SQL2,sInterest
set rs= server.createobject("adodb.recordset")'för City
set rst= server.createobject("adodb.recordset")'för Members
set RS1= server.createobject("adodb.recordset")'för Interest
set RS2= server.createobject("adodb.recordset")'fär MemberInterest

'Ta fram städerna
SQL="SELECT CityID, City FROM t_City ORDER BY City"
rs.open SQL, Connection, 2, 2
'Ta fram medlemen
SQL1="SELECT t_Member.m_id, t_Member.Name, t_Member.Street, t_Member.City, t_City.City " &_
" FROM t_City INNER JOIN t_Member ON t_City.CityID = t_Member.City " &_
" WHERE t_Member.m_id ="& Request("Id")
rst.open SQL1, Connection, 2, 2

%>












Editera medlemar.



">

Namn

">
Address

">
Stad






Välj intressen.





<%
'Här hämtar vi alla intressen som finns
SQL="SELECT I_ID, Interest FROM t_Interest ORDER BY Interest"
RS1.open SQL, Connection, 2, 2

if NOT RS1.EOF THEN
DO WHILE NOT RS1.EOF
sInterest=RS1("Interest")
'Här kolla vi om medlemen har detta intresse
set RS2= server.createobject("adodb.recordset")
SQL2="SELECT I_ID,M_ID FROM t_MemberInterest WHERE M_ID ="& Request("Id") & "
AND I_ID =" & RS1("i_ID")
RS2.open SQL2, Connection, 2, 2

if NOT RS2.EOF THEN
'Om medlemmen har detta intresse, så checkar vi checkboxen
%>
" checked> <%=
sInterest%>

<%
ELSE
'annars inte
%>
"> <%=sInterest%>


<%
END IF
RS1.MOVENEXT
LOOP
END IF
'Städar upp efter oss
rst.CLOSE
set rst=Nothing
RS1.CLOSE
set RS1=Nothing
RS2.CLOSE
set RS2=Nothing

%>











update.asp

Och nu återstår den sista delen av update.asp. Jag hoppas att Du har förstått, att varje gång
som vi kommer till update.asp, så skall den koden läggas nedanför den förra koden.

Case "Uppdate Member"
'Uppdatera medlemmen
sName = Request.Form("Name")
SQL = "Update t_Member Set Name='" & sName & "',Street ='" & Request.Form("Street") & "',
City = "& Request.Form("City") & " WHERE m_Id ="& Request("Id")
Connection.Execute(SQL)

'Uppdatera intressen men först ta bort de gammla
SQL = "DELETE FROM t_MemberInterest WHERE M_Id = "& Request("Id")
Connection.Execute(SQL)
Set RS = Server.CreateObject("ADODB.Recordset")
SQL ="Select m_Id FROM t_Member WHERE Name = '" & sName & "'"
RS.Open SQL, Connection, 3, 3
IF NOT RS.EOF then
sIntrerest = Request.form("Interest")
aIntr = split(sIntrerest, ",", -1, 1)

For i = 0 to ubound(aIntr)
SQL = ("Insert INTO t_MemberInterest(m_Id,i_ID)VALUES( " & RS("m_Id") & "," & aIntr(i) & " )")
Connection.Execute(SQL)
Next
ELSE
Response.Write"Ingen post är registrerad"
END IF
RS.Close
Set RS=Nothing
Response.Write "
" & sName & " är nu uppdaterad!
"

Case "Delete Member"
'Tar bort all information om medlemen
SQL = "DELETE FROM t_MemberInterest WHERE M_Id = "& Request("Id")
Connection.Execute(SQL)
SQL = "DELETE FROM t_Member WHERE M_Id = "& Request("Id")
Connection.Execute(SQL)
Response.Write "
Medlemen med ID:nr " & Request("Id") & " är nu bortagen
ur registret!
"

end select

Vi börjar med att uppdatera medlemmens uppgifter. För att kunna uppdatera intressena,
så måste vi först ta bort alla som finns registrerade på det id:nr. Därefter så gör vi
split/loop/insert, som vi har gjort tidigare.

Jag visar också här, hur Du tar bort en medlem. Det måste börjas med att ta bort alla intressen.
Gör Du tvärsom så får du problem. Vi avsluta selecten, och glöm inte att se till att Du har
en ASP-avslutnings tag och den avslutande includen i slutet av filen.

Avslut

Nu har vi nått målet för våra förutsättningar. Vi kan nu lägga till medlemar och editera dem
som det behagar oss.
Eftersom scriptet är dynamiskt, kan du ha hur många städer som helst, och hur många
intressen som det behagas, Du har fått allt det Du ville ha…

nästan.
Benni Svensson
Upp

0 Kommentarer

Skriv en kommentar på artikeln

Ditt betyg på artikeln



Kommentar:





Nyligen

  • 09:09 Vill du köpa medicinska tester?
  • 12:47 Vem beviljar assistansen – kommune
  • 14:17 Någon med erfarenhet av hemstädnin
  • 14:14 Bör man använda sig av en båtförme
  • 14:12 Finns det någon intressant hundblo
  • 14:25 Tips på verktyg för att skapa QR-k
  • 14:23 Tips på verktyg för att skapa QR-k
  • 20:52 Fungerer innskuddsbonuser egentlig

Sidor

  • Hem
  • Bli bonusmedlem
  • Läs artiklar
  • Chatta med andra
  • Sök och erbjud jobb
  • Kontakta oss
  • Studentlicenser
  • Skriv en artikel

Statistik

Antal besökare:
Antal medlemmar:
Antal inlägg:
Online:
På chatten:
4 569 158
27 952
271 704
1 086
0

Kontakta oss

Frågor runt konsultation, rådgivning, uppdrag, rekrytering, annonsering och övriga ärenden. Ring: 0730-88 22 24 | pelle@pellesoft.se

© 1986-2013 PelleSoft AB. Last Build 4.1.7169.18070 (2019-08-18 10:02:21) 4.0.30319.42000
  • Om
  • Kontakta
  • Regler
  • Cookies