ITfjernundervisning

ASP.NET / Dataset og datagrid objektet / Indlæsning af data

Nu er du kommet så langt!


Du er landet hos it-fjernundervisning.dk. Min viden er din viden.

Tag et kursus når du vil, når du har tid.

Kig rundt og fortæl mig hvad du har brug for.


Indlæsning af data i dataset

Vi arbejder videre med projekt xml dokumentet.

ASP.NET kursus - Dataset objektet - fjernundervisning

Vi indlæser XML dokumentet ind i et dataset, der jo som vi så det har en readXML metode.

Vi skal til at arbejde objektorienteret, så vi laver en klasse, der kan bruges til at holde styr på projekterne. Den kunne i første omgang se sådan her ud:

Objekt kodning

using System;
using System.Data;
using System.Configuration;
namespace ProjektDatagrid.Klasser
{
  public class Projekter
  {
    DataSet _Projekter = new DataSet();

    public Projekter()
    {
      _Projekter.ReadXml(ConfigurationSettings.AppSettings["XMLPath"] + @"\projekter.xml");
    }

    public DataView ProjektListe()
    {
       return _Projekter.Tables[0].DefaultView;
    }
  }
}

Og codebehind filen kunne se sådan her ud:

using ProjektDatagrid.Klasser;
namespace ProjektDatagrid
{
 public class WebForm1 : System.Web.UI.Page
 {
  protected System.Web.UI.WebControls.DataGrid dgridProjekter;
  Projekter _Projekter = new Projekter();
  
  private void Page_Load(object sender, System.EventArgs e)
  {
   if (!IsPostBack)
    DoDataBind();
  }
  
  private void DoDataBind()
  {
   dgridProjekter.DataSource = _Projekter.ProjektListe();
   DataBind();
  }
 }
}

Klassen ser sådan her ud i VB.NET

Public Class Projekter

  Dim _Projekter As New DataSet

  Public Sub New()
    _Projekter.ReadXml(ConfigurationSettings.AppSettings("FilePathLosning") + "\projekter.xml")
  End Sub

  Public Function ProjektListe() As DataView
    Return _Projekter.Tables(0).DefaultView
  End Function

End Class

Og den tilhørende codebehind

Dim _Projekter As Projekter = New Projekter()
Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
  If Not Page.IsPostBack Then
    DoDataBind()
End Sub

Private Sub DoDataBind()
  dgridProjekter.DataSource = _Projekter.ProjektListe()
  DataBind();
End Sub

Klassisk kodning

Visual Basic .NET:

Public Class _1_indlæs
    Inherits System.Web.UI.Page
    Dim dsetAndeby As New DataSet
    Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        dsetAndeby.ReadXml(Server.MapPath("Andeby.xml"))
        dgridAndeby.DataSource = dsetAndeby.Tables(0).DefaultView
        dgridAndeby.DataBind()
    End Sub
End Class

C# .NET

namespace Udviklingcsharp.ASP.NET_II_kursus
{
 public class _1_indlæs : System.Web.UI.Page
 {
  protected System.Web.UI.WebControls.DataGrid dgridAndeby;
  DataSet dsetAndeby = new DataSet();
  private void Page_Load(object sender, System.EventArgs e)
  {
   dsetAndeby.ReadXml(Server.MapPath("Andeby.xml"));
   dgridAndeby.DataSource = dsetAndeby.Tables[0].DefaultView;
   dgridAndeby.DataBind();
  }
 }
}


Dataset objektet

Datatable objektet

I det følgende er kun de vigtigeste egenskaber og metoder til objektet vist

Egenskaber

  • Rows - er en samling af alle rækker i tabellen
  • Columns - er en samling af alle kolonner i tabellen

Metoder

  • NewRow() - opretter en ny række i tabellen
  • Select(select, sort) - bruges til at sortere og filtrere data
  • Compute() - Kan udføre en beregning på en kolonne (sum eller lign)

Oprettelse af klassefiler i Visual Studio.NET

Når du vil oprette en klasse som en del af dit projekt gør du som følger:

  • Højreklik på Projektet i Solution Explorer
  • Vælg Add | Add Class
  • Giv din klassefil et navn og klik på open.


Når du vil bruge klassen i din kode skriver man øvers i koden Using (C#) eller Imports (VB).

Læs også siden her om objektorienteret programmering og klasser


Når du har betalt for kurset får du adgang til øvelser til hver lektion.
Og når du har fået godkendt din besvarelse får du desuden adgang til mine løsningsforslag med ekstra tips og trix.


<<- XML - udtræk af elementer

Paging ->>


Har du kommentarer til sidens indhold er de altid velkomne - skriv og klik send


Navn:
E-mail:
(vises ikke)