Panelen



Forumnavigering
Senast inloggade
RSS
Sponsorer
Artiklar > Databaser & SQL

Databaser i asp.net

Databas:
Vilket språk eller teknik du än andvänder för att skapa dynamiska hemsidor så är kunskapen om hur du hämtar, lagrar, updaterar och tar bort data ur en databas. Jag skall nu visa dig hur du använder dig utav ADO.NET för just detta.

Öppna databasen:
Det första som måste kollas upp är vilka NameSpace du måste inkludera i aspx-sidan. Först och främst inkluderar du System.Data och System.Data.OleDb. Dessa behövs för att din kod skall kunna komma åt vissa funktioner som du kommer att använda, och som vanligt bestämmer du vilket språk du skall använda:

<%@ Page Language="C#" Debug="true" %>
<%@ Import Namespace="System.Data" %>
<%@ Import Namespace="System.Data.OleDb" %>


Nu när du har inkluderat vad du behöver, Så skall alltid kollar i vilken databas du skall öppna, i detta exempel använder du en SQL-Server, och har lagt upp kopplingsdata som bara är påhitt. Du lagrar hela connectionsträngen i variabeln strDbCon:

string strDbCon = "Provider=SQLOLEDB;Server=myServer;Database=myDatabase;Uid=user;Pwd=pass;";

Om du använder en access databas så är det bara att byta ut ovanstående rad mot denna:

string strDbCon = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=c:\somepath\myDb.mdb;";

Nu skall du kolla på hur du kommer att lagra datat medans hemsidan använder det. Ett mycket flexibelt sätt är att lagra det i en DataSet, som finns i NameSpace System.Data. En DataSet kan ses som ett mycket utvecklat Recordset för den som använt gamla ADO. I ett DataSet kan du lagra flera olika tabeller, i vilket du har fält och poster, så skulle du vilja så kan vi slänga in hela databasen i ett DataSet, men det är i de flesta fall inte speciellt effektivt. Du skapar en instans av ett DataSet, och lagrar objektet i ds:

DataSet ds = new DataSet();

Nu skall du äntligen öppna databasen och samtidigt hämta datat du skall lagra där. Först skapar du en vanlig SQL-sträng:

string strSQL = "Select * from tblTable";

och använder OleDbDataAdapter (ifrån NameSpace System.Data.OleDb) för att öppna databasen och samtidigt hämta datat som din SQL-sträng säger:

OleDbDataAdapter oleQuery = new OleDbDataAdapter(strSQL, strDbCon);


I oleQuery ligger nu det data som våran SQL-sträng frågade efter. Nu skall du fylla din DataSet med detta data:

oleQuery.Fill(ds, "Table");

Två argument gav du. Och det första är din DataSet, och det andra är det alias du vill ha på tabellen du stoppar in i.

Sedan lägger du tabellen i din DataSet i ett DataTable, för att kommar åt raderna som du måste använda vid loopningen:

DataTable dt = ds.Tables["Table"];

Okej, nu har du den datat du vill använda dig av, och för att skriva ut datat till klienten så kommer du att skapa en loop som är grundad i varje rad som finns i din DataTable. Du använder mig utav loopmetoden foreach:

foreach (DataRow dr in dt.Rows) {
  Response.Write(dr["Field"] + "<br>");
}


Här ser du loopen. När jag definierar loopen så anger du att den skall loopa tills raderna (dt.Rows) är slut i din DataSet. Du anger att i varje rad skall ha datatypen DataRow, och finnas i dr. Så i loopen använder du dr["Field"] för att komma åt ett visst fält i dr.

Sammanfattning & resultat:
Nu sätter du ihop alla kodsnuttar som visas ovan till en hel sida. och visar resulatet av ett fejkat data:

<%@ Page Language="C#" Debug="true" %>
<%@ Import Namespace="System.Data" %>
<%@ Import Namespace="System.Data.OleDb" %>
<%
string strDbCon = "Provider=SQLOLEDB;Server=myServer;Database=myDatabase;Uid=user;Pwd=pass;";
string strSQL = "Select * from tblTable";

DataSet ds = new DataSet();
OleDbDataAdapter oleQuery = new OleDbDataAdapter(strSQL, strDbCon);
oleQuery.Fill(ds, "Table");

DataTable dt = ds.Tables["Table"];

foreach (DataRow dr in dt.Rows) {
  Response.Write(dr["Field"] + "<br>");
}
%>

Exempelresultat:
Aspkool.se
ASP.NET & C#
ASP, VBScript
SQL
XML, XHTML, XSL
HTML, DHTML, CSS
JavaScript, JScript
Editorer

Referenser:
Namaspace:
System.Data
System.Data.OleDb

Class:
DataSet
OleDbDataAdapter
OleDbDataAdapter.Fill
DataRow

Skapades: 2007-07-27 20:59:50
Skribent: helloiam
Lästs 1349 gånger
Betyg: 0 (artikeln har endast 2 röster, det krävs minst 5 för ett betyg)

Kommentarer

Ingen har kommenterat denna artikel än.

© Copyright 2007-2009 Shadi Domat | Version 3.0 | Sidkarta | Policy