/ Forside / Teknologi / Udvikling / ASP / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
ASP
#NavnPoint
smorch 9259
Harlekin 1866
molokyle 1040
Steffanst.. 758
gandalf 657
smilly 564
gibson 560
cumano 530
MouseKeep.. 480
10  Random 410
.NET Problem
Fra : Mark S. Rasmussen


Dato : 12-06-02 20:19

Hej alle. Nu da jeg sidder og leger med asp.NET er jeg stødt ind i mit
første problem. Jeg har følgende kode:

<%@Import Namespace="System.Data"%>

<!--#Include File="../../includes/conn.aspx"-->

<script language="VB" runat="server">

Sub MakeSubs(SubID As Integer)
Dim sqlSub As SqlCommand = New SqlCommand("SELECT * FROM [tblMenu] WHERE
[SubID] = " & SubID, Conn)
Dim rsSub As SqlDataReader = sqlSub.ExecuteReader()

Do While rsSub.Read
Response.Write("<b>" & rsSub("Title") & "</b>")
Loop
End Sub

</script>


<table border="0" cellpadding="0" cellspacing="0" height="490">
<tr>
<td style="border-bottom: 2px solid #000000" valign="top">
<br>

<%
Dim sql As SqlCommand = New SqlCommand("SELECT * FROM [tblMenu] WHERE
[SubID] = 0", Conn)
Dim rs As SqlDataReader = sql.ExecuteReader()

Do While rs.Read
Response.Write("<img src='images/menu/" & rs("Image") & "' width='130'
height='35'><br><br>")
MakeSubs(rs("MenuID"))
Loop
%>

</td>
</tr>
</table>

<!--#Include File="../../includes/connend.aspx"-->

Koden skulle gerne udskrive alle menuemner der har SubID = 0, og så de
undermenuemner til disse. Problemet opstår i min MakeSubs funktion, som
klager over at Conn ikke er erklæret (Det sker kun i MakeSubs funktionen,
den anden kode virker fint). Hvis jeg sender Conn med som en parameter
klager den over at der kun kan være en datareader tilsluttet min Conn ad
gangen... Hvad gør jeg? :)

Mvh Mark



 
 
Kim Bach Petersen (12-06-2002)
Kommentar
Fra : Kim Bach Petersen


Dato : 12-06-02 21:24

1. Du er nødt til at have et antal datareadere, der svarer til antallet at
niveauer i dit hierarki.
2. En sub kan kun bruge globale variable eller variable, der er
dimensionerede i sub'en selv.

Se tråden 'Menusystem + rekursivitet' fra 10.6.02 for flere detaljer.

Kim

--
· www.kensho.dk · psykologi og spiritualitet ·



Mark S. Rasmussen (12-06-2002)
Kommentar
Fra : Mark S. Rasmussen


Dato : 12-06-02 21:55

> 2. En sub kan kun bruge globale variable eller variable, der er
> dimensionerede i sub'en selv.

Kan man lave en anden type funktion, som virker som de gamle subs og
functions? Hvis jeg laver en Sub inde i mine <% %> får jeg fejl på et helt
andet sted på min side (som normalt virker).

Hej Kim, tak for svaret. Jeg så på din løsning, og jeg har også lavet et par
af samme type til normalt ASP. Men såvidt jeg har læst mig til, mister man
performance ved at blande de gamle ASP funktioner, ind i .NET. Derfor prøver
jeg såvidt muligt at holde mig til .NET funktionerne. Jeg vil tro de
funktioner der bedst kan sammenlignes med det gamle recordset, er en
SqlReader?

Eller tager jeg fejl?`

Mvh Mark



Kim Bach Petersen (13-06-2002)
Kommentar
Fra : Kim Bach Petersen


Dato : 13-06-02 08:21

> Kan man lave en anden type funktion, som virker som de gamle subs og
> functions? Hvis jeg laver en Sub inde i mine <% %> får jeg fejl på et helt
> andet sted på min side (som normalt virker).

En af ideerne i as.net er at skille kode og layout mest muligt. Derfor skal
programkode helst lægges i en scriptblok for sig selv:

<script language="VB" runat="server">
[...]
</script>
<html>
[...]
<html>

Indenfor denne scriptblok kan du bruge function og sub stort set som du
plejer.

For at kunne gennemføre denne adskillelse er der en række server controls i
asp.net, som let kendes ved, at de har tagget 'runat="server"'. Flere af
disse kan fyldes med indhold direkte fra programkoden, sådan man slipper for
at blande asp og html med rå mængder af <%%>'er. I dit tilfælde ville en
'table' eller 'repeater' være oplagt. Der findes masser af info på nettet,
start fx ved: http://www.asp101.com/lessons/ eller se Jørns linksamling på
http://www.marxisme.dk/test/asplinks.asp.

> Jeg vil tro de funktioner der bedst kan sammenlignes
> med det gamle recordset, er en SqlReader?

Ja, jeg tror også, at det er diveres reader'e der kommer tættest på og de er
jo i hvert fald lette at håndtere.

Kim

--
· www.kensho.dk · psykologi og spiritualitet ·



Søg
Reklame
Statistik
Spørgsmål : 177560
Tips : 31968
Nyheder : 719565
Indlæg : 6408952
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste