---
title: "UserControl; köra en fast flera..."
type: "forum-thread"
url: "https://www.webforum.nu/amne/dotnet/160418-usercontrol-köra-en-fast-flera"
topic: ".NET"
topic_url: "https://www.webforum.nu/amne/dotnet"
author: "Travoni"
published: "2007-05-16T22:31:47.000Z"
updated: "2007-05-18T15:43:23.000Z"
replies: 5
views: 468
page: 1
pages: 1
language: "sv-SE"
site: "webForum — webforum.nu"
rights: "Upphovsrätten till varje inlägg tillhör dess författare."
attribution: "Citera som: webForum, https://www.webforum.nu/amne/dotnet/160418-usercontrol-köra-en-fast-flera"
---

# UserControl; köra en fast flera...

## #1 — Travoni, 2007-05-16T22:31Z

För att undvika att göra fler databasanrop än nödvändigt när jag kör mina UC så skulle jag vilja kunna göra så här:
1\. Registrarar min uc högst upp på sidan som vanligt.
2\. När UC:n körs första gången på sidan så görs ett databasanrop
3\. Nästa gång uc:n körs (Flera av samma kontroller på samma sida)
så görs inget databasanrop utan hämtas på något annat sätt... 
**Hur gör jag nu detta?**
Det kanske inte äns skall vara en UC, utan en...

I klassisk ASP hade jag gjort ett databasanrop högst upp på sidan, lagt in databasposterna i en array med getrows och ev. via en funktion/sub på diverse ställen hämtat respektive post.
Ex. 

```
set rs=conn.execute("SELECT ett FROM db WHERE id=1")
If not rs.eof then myRows = rs.getrows()

<%=myRows(0,0)%>
Annat innehåll
<%=myRows(0,1)%>
Mer innehåll <%=myRows(0,2)%>
```

Tacksam för hjälp.

Permalänk: https://www.webforum.nu/p/160418

## #2 — Pace, 2007-05-16T22:53Z

Cacha kontrollen eller databasanropet.

Permalänk: https://www.webforum.nu/p/1978437

## #3 — freguz, 2007-05-17T05:28Z

Det är nog inte optimalt i .net att göra på det sättet.

Jag skulle föreslå att du i codebehind istället hämtar ut datat och och ger asp:Labels på htmlsidan dessa värden. 

Handlar det om massa items som loopas ut så skulle jag nog fyllt en repeater som man sen enkelt i htmlsidan kan hämta data ur med hjälp av \<%# DataBinder.Eval(Container.DataItem, "ArtNr") %\> se tutorial: <http://dotnetjunkies.com/Tutorial/36FB37DF-D808-4F4C-819F-896A63C7589A.dcik>

Permalänk: https://www.webforum.nu/p/1978454

## #4 — Travoni, 2007-05-18T13:10Z

freguz: Det är möjligt att det inte är, men det måste gå att lösa. (Vore löjligt annars... :) )
En repeater funkar tyvärr inte eftersom att kontrollerna hamnar på helt olika ställen.

Pace: Smart, cacha databasanropet funkar ju bra typ så här:

```
Dim objDSCache As DataSet = CType(Cache.Get("objDSCache"), DataSet)

        If objDSCache Is Nothing Then
            Dim sqlStr As String = "SELECT txt FROM DB WHERE id=1"
            Dim objConnect As New MySqlConnection(System.Configuration.ConfigurationManager.ConnectionStrings("connectionString").ConnectionString)
            Dim objDataAdapter As New MySqlDataAdapter(sqlStr.ToString(), objConnect)
            Dim objDS As New DataSet()
            'Cache.Insert("objDSCache", objDS, [B]cacheDependencyObj[/B], DateTime.Now.AddSeconds(60), TimeSpan.Zero)
            Cache.Insert("objDSCache", objDS)
            objDataAdapter.Fill(objDS, "Info")
            objConnect.Close() : objConnect = Nothing
            GetRows = objDS.Tables("Info")

            objDataAdapter = Nothing : objDS = Nothing
        Else
            GetRows = objDSCache.Tables("Info")
        End If
```

Men då återstår ett problem... Cachen ligger kvar oavsätt sida.
Hur undviker man det?
Kan jag döpa cachens namn olika eller går det att utnyttja **cacheDependencyObj**
Typ så här: 

```
Cache.Insert("objDSCache" & [B]page_id[/B], objDS, Nothing, DateTime.Now.AddSeconds(60), TimeSpan.Zero)
```

Permalänk: https://www.webforum.nu/p/1978849

## #5 — emission, 2007-05-18T14:38Z

Om du vill knyta cachen till en specifik sida (adress), så kan du göra som du skriver ovan (ändra cache-nyckel). Om det ska cachas för en specifik request så använd Context.Items.

Permalänk: https://www.webforum.nu/p/1978865

## #6 — Travoni, 2007-05-18T15:43Z

Härligt :)

Permalänk: https://www.webforum.nu/p/1978878

---

Tråden på webben: https://www.webforum.nu/amne/dotnet/160418-usercontrol-köra-en-fast-flera
