Hej! Tar tillbaka mitt inlägg... av lite slarv från min sida tolkade jag din text som att du hade en ASP sida o ville nu veta hur du skrev denna i .Net språken... sorry... 1. Varför kan du inte anropa "Meny" om du lyckades med tabell "Nytt" ? Får du något fel? --> ("SELECT * From Nytt ORDER BY Datum DESC", objDB) Tack för snabba svar!Hämta info från två oberoende tabeller
Jag har precis börjat ge mig lite i kast med ASP.NET och är som sagt nybörjare.
Har två frågor som jag gärna vill ha svar på.
Har en ASP-sida (klassisk) som hämtar information från två tabeller i en databas. Dessa två tabeller har inget att göra med varandra. Min klassiska ASP-sida tänkte jag göra om till ASP.NET.
1. Min första fråga är hur jag ska göra mina anrop? Har bara lyckats med att anropa en tabell (Nytt) i min databas. Vill även kunna anropa en tabell som heter "Meny" också.
<%@ Page Language="VB" LCID="1053" %>
<%@ import Namespace="System.Data" %>
<%@ import Namespace="System.Data.OleDb" %>
<script runat="server">
Sub Page_Load(obj as Object, e as EventArgs)
' skapa koppling till databasen
Dim objDB as new OleDbconnection _
("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\inetpub\db\minDatabas.mdb")
' Öppna kopplingen
Dim objCmd as new OleDbDataAdapter _
("SELECT * From Nytt ORDER BY Datum DESC", objDB)
' Fyll ett datasetobjekt
Dim ds as DataSet = New DataSet()
objCmd.Fill(ds, "Nytt")
' Välj ett dataviewobjekt och bind till serverkontrollen
Repeater1.DataSource = ds.Tables("Nytt"). _
DefaultView
DataBind()
End Sub
</script>
<html>
<head>
<link href="format.css" type="text/css" rel="stylesheet" />
</head>
<body>
<asp:Repeater id="Repeater1" runat="server">
<HeaderTemplate>
<table width="300" cellpadding="4" cellspacing="0" border="0">
<tr>
<td colspan="2" width="300">
Senaste Nytt</td>
<td></td>
</tr>
</HeaderTemplate>
<ItemTemplate>
<tr>
<td width="200">
<b><%#Ucase(Container.DataItem("Rubrik"))%></b>
</td>
<td align="right" width="100">
<i><%#Container.DataItem("Datum")%></i>
</td>
</tr>
<tr>
<td colspan="2" width="300">
<%#Container.DataItem("Brodtext")%>
</td>
</tr>
</ItemTemplate>
<FooterTemplate>
</table>
</FooterTemplate>
</asp:Repeater>
</body>
</html>
2. Fråga nr. 2, ska man inte stänga av sin databas-koppling eller sker detta automatiskt?
Typ det man gör i ASP t ex DB.Close
Blir jätteglad för all hjälp och tips jag kan få.
/AnnetteSv: Hämta info från två oberoende tabeller
Mvh JohanSv: Hämta info från två oberoende tabeller
2. Ja du ska *alltid* stänga en koppling själv. Lämpligen efter ditt databind anrop.
Mvh RickardSv:Hämta info från två oberoende tabeller
Kan du inte köra en join här för att slippa hämta in två DataSets?
Jag skulle dock inte själv köra en join, men mitt byggsätt är lite annorunda än det mer funktionsdrivna.
Du kan köra command objektet igen med en ny sql sats, där du fyller en ny DataSet instans.
Du kan även läsa in två Datasets och koppla ihop dem, lite knöligare och detta bör du nog läsa mer om än att jag ev ger dig en lösning.
Ang stänga. Dataset är disconnected, så den har ingen kontakt med databasen så som RecordSet hade, dock har SqlDataReadern det. Dock skall du alltid stänga en connection när du utfört en command om du inte vill återanvända den öppna poolen.
Du kan läsa mer om ADO .Net på nätet, finns en rad artiklar, även här på pelles portal finns de, kolla under artiklar. Jag tror det kan vara nyttigt om du läser lite om ADO .Net hur det fungerar m.m. och även om DataGrids etc... Har du inte installerat Qucik Starten som följer med .Net SDK är det att föredra.
Mvh JohanSv: Hämta info från två oberoende tabeller
Jag ska läsa på lite mer och testa igen.
/Annette