Turvenn.no
Webutvikler kurs ASP.NET, C#, CSS mm.

WebRessurs.no - Webprogrammering og ressurs innen ASP, ASP.NET, PHP, SQL, HTML, CSS, Javascript, XML, C#, VB, Flash  mm.

Brukernavn: 
Passord:

Registrèr deg Glemt passord?
Logg deg inn




  ASP.net (199)
  ASP 3.0 (111)
  PHP (30)
  HTML (66)
  SQL (89)
  CSS (46)
  XML (7)
  JavaScript (78)
  Diverse kode (13)


  Programmering (22)
  System og drift (15)
  Trafikk og inntekt (11)
  Guider og tips (22)
  Nyttig lesestoff (23)
  Web forum (604)
  Link galleri (566)


  ASP.NET kurs(5)
  CSS kurs (2)
  JQuery kurs (2)


  Øk trafikken (8)
  Facebook App. (4)
  Microsoft CEO (6)


  Server & web
  Internett & epost
  Systemverktøy
  Sikkerhet
  Fildeling
  Lyd & media
  Diverse software


  Domenesalg
  Metagenerator
  Websikre farger
  Gratis epost
  WebMail


  Bli medlem!
  Siste innlegg
  Gjestebok
  Tips en venn
  Kontakt oss
  Forsiden




Kode Artikler
Linker


Mål internetthastigheten din.


Lær deg ASP.NET Del 3: Koble til database og vise meny


Av: Øyvind A. Isaksen

I denne delen av ASP.NET kurset viser vi først hvordan man oppretten en bruker i SQL Server med tilgang til databasen vår. Deretter lager vi en connection string i Web.Config og benytter brukeren vi opprettet når vi kobler oss til databasen. Vi henter så ut de dataene vi ønsker fra kategori-tabellen ved hjelp av en Stored Procedure, og til slutt programmerer vi koden for å vise menyen på vår nettside.



Opprette ny bruker i databasen



Det første vi må å gjøre er å opprette en bruker som skal ha tilgang til databasen vår. Denne brukeren skal vi benytte når vi senere i dette eksempelet oppretter database-koblingen.

Åpne SQL Server Management Studio og finn databasen din (Minside) i Object Explorer. Høyreklikk på mappen som heter Security like under Databases mappen. I Security Mappen er det en mappe som heter Logins, høyreklikk på den og velg "New login...". Fyll inn "Login name", feks "minside". Kryss av for SQL Server autentication og skriv inn et passord, feks "mitt_hemmelige_passord". Brukernavnet og passordet du fyller inn her vil du få bruk for når du skal koble til databasen.

Fjern avhukningen for "Enforce password policy", "Enforce password expiration" og "User must change password at next login". I "Default database" velg "Minside". Klikk på "User Mapping" til venstre og kryss av i boksen til venstre for "Minside". Under "Database role membership for: Minside" velger du "public" og "db_owner". Klikk "Ok" og brukeren din vil bli opprettet.


Lage en Stored Procedure



Det vi nå skal gjøre er å lage en spørring i databasen som henter ut menypunktenen fra meny-tabellen vår (tblCategories). Fordelen med å legge SQL spørringer i Stored Procedures er at det er både sikrere, bedre ytelse og mer oversiktlig enn å legge spørringer direkte i ASP.NET koden.

Gå i SQL Server Management Studio og finn databasen din (Minside) i Object Explorer. Under databasen ligger det en mappe som heter "Progammability", om du ekspanderer denne ser du at det ligger en mappe i denne som heter "Stored Procedures". Høyreklikk på denne mappen og velg "New Stored Procedure...".


Fyll inn følgende SQL spørring:

SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

CREATE PROCEDURE spListCategories
AS
BEGIN
       SET NOCOUNT ON;
       SELECT ID, Name FROM tblCategories ORDER BY SORT
END
GO


Trykk på "Execute" for å lagre din spørring.


Opprette databasekobling i Web.config



Web.config er en konfigurasjonsfil i prosjektet ditt der du kan legge opplysninger som feks database kobling ol. En av fordelene med dette er at du unngår unødig replikajon ved at denne type informasjonen kun ligger ett sted.

Åpne prosjektet ditt i Visual Web Developer 2008 Express om du ikke allerede har gjort det. Nederst i Solution Explorer ser du web.config filen, åpne denne. Et lite stykke ned i fila finner du følgende element:


<connectionStrings/>


Erstatt denne med følgende, husk å legge inn korrekt brukerinformasjon til brukeren du nettopp opprettet:


<connectionStrings>
  <add name="ConnString" providerName="system.data.sqlClient" connectionString="server=localhost; database=Minside; uid=minside; password=mitt_hemmelige_passord" />
</connectionStrings>


Problemer med å koble til databasen? Åpne SQL Server på nytt, når du kobler til så står det hva servernavnet ditt er. Feks "Server name: datamaskinnavn\SQLEXPRESS". Sjekk at dette er identisk med server navnet i connection stringen. Sjekk også at brukernavn, passord, og database er korrekt skrevet og at brukeren er opprettet i databasen.

Se også film om dette temaet:
http://www.asp.net/learn/sql-videos/video-109.aspx


Lagre og lukk web.config filen.


Lage en klasse med felles funksjoner



For å forenkle programmeringen senere skal vi nå opprette en klasse der vi kan legge funksjoner og logikk man ofte benytter. Dette for å sentralisere kode slik at man ved en senere anledning slipper å oppdatere samme funksjonalitet flere steder om man skal gjøre en endring i koden.

Opprett en ny mappe med navn "App_Code", og opprett så en fil i denne mappen med navnet "Common.cs". Legg inn følgende kode i fila:


using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Configuration;

namespace Minside
{
    public class Common
    {
        public static string ConnString
        {
            get
            {
                return ConfigurationManager.ConnectionStrings["ConnString"].ConnectionString;
            }
        }
    }
}


Lagre fila.


Hente ut meny og vise på nettside



Åpne Default.master fila og finn området der menyen vises:


<!-- Begin Left Column -->
<div id="leftcolumn">
    <p><b>VENSTRE KOLONNE</b></p>
    <ul>
        <li><a href="#">Menypunkt 1</a></li>
        <li><a href="#">Menypunkt 2</a></li>
        <li><a href="#">Menypunkt 3</a></li>
        <li><a href="#">Menypunkt 4</a></li>
        <li><a href="#">Menypunkt 5</a></li>
    </ul>
</div>
<!-- End Left Column -->


Nå skal vi lage en dynamisk kode som erstatter koden over, slik at menyen vises utifra hva som ligger i databasen vår. Det finnes en rekke server-kontroller i ASP.NET som kan benyttes for å liste ut data, men for å liste ut en enkel meny som i dette eksempelet er Repeater-kontrollen mest hensiktsmessig å benytte.

Erstatt koden over med følgende kode:


<!-- Begin Left Column -->
<div id="leftcolumn">
    <p><b>VENSTRE KOLONNE</b></p>

    <asp:Repeater runat="server" ID="repMenu">
        <HeaderTemplate><ul></HeaderTemplate>
        <ItemTemplate>
          <li>
            <a href='Default.aspx?id=<%# DataBinder.Eval(Container.DataItem, "ID") %>'>
              <%# DataBinder.Eval(Container.DataItem,"Name") %>
            </a>
          </li>
        </ItemTemplate>
        <FooterTemplate></ul></FooterTemplate>
    </asp:Repeater>
    
</div>
<!-- End Left Column -->


Lagre Default.master fila.


Vi har nå laget presentasjonen av menyen ved hjelp av en Repeater_kontroll som lister ut alle menypunktene. Neste oppgave er å lage logikken / funksjonaliten som henter dataene fra databasen og binder det til Repeater-kontrollen.

Åpne Code Behind fila til Default.master, dette gjør du ved å klikke på + tegnet ved siden av Default.master og dobbelt-klikke på fila Default.master.cs som så vises.

Legg inn følgende kode i Default.master.cs:


using System;
using System.Collections;
using System.Configuration;
using System.Data;
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;
using System.Data.SqlClient;

public partial class Templates_Default : System.Web.UI.MasterPage
{
    protected void Page_Load(object sender, EventArgs e)
    {
        if (!Page.IsPostBack)
         {
             BindMenu();
         }
    }

    private void BindMenu()
    {
        SqlConnection conn = new SqlConnection(Minside.Common.ConnString);
        SqlCommand cmd = new SqlCommand("spListCategories", conn);
        cmd.CommandType = CommandType.StoredProcedure;
        cmd.Connection.Open();
        SqlDataReader dr = cmd.ExecuteReader();
        this.repMenu.DataSource = dr;
        this.repMenu.DataBind();
        cmd.Connection.Close();
        cmd.Dispose();
        conn.Dispose();
    }

}


Trykk CHRL+Shift+b og prosjektet ditt vil bygges, du skal da få "Build succeeded" om alt er korrekt programmert.

Får å teste nettsiden din, trykk F5. Nettsiden vil da vises, og menyen vil vises med de menypunktene du har lagt inn i database din:

Illustrasjonsbilde



Oppsummering



Vi har nå vist hvordan man lager en databasekobling i Web.config filen, hvordan man henter ut data fra en tabell i SQL Server og hvordan man binder disse dataene til en Repeater-kontroll.

I del 4 av dette kurset skal vi se på hvordan vi kan vise artikler fra databasen når man klikker på de enkelte menypunktene.


Nedlasting av filer



Last ned hele prosjektet (del 1-3) her:
www.webressurs.no/kurs/aspnet/del3/MinSide.zip



WebRessurs.no anbefaler:    StackOverflow.com | Experts-Exchange.com | W3schools | ASP.NET | Codeproject | 4Guys
WebRessurs.no er utviklet og drives av SoftMaker LTD
Sett som startside: [ ]. Bokmerk denne siden: [ klikk ]. Sitemap. http://twitter.com/webressurs_no/. Antall brukersesjoner: 9401597.
Copyright WebRessurs.no © 2003 - 2015