webForumDet fria alternativet

Viewstate eller räkna varje gång?

.NET

3 svar · 269 visningar · startad av Jesper T

Medlem sedan nov. 20017 144 inlägg
Frågan#1

Är det smart att lägga antalet poster i "tillståndsmultimängden" och kolla där innan man hämtar antalet ur databasen?

        If ViewState("totalRecords") Is Nothing Then
            totalRecords = GetmeDSCount()
        Else
            totalRecords = CType(ViewState("totalRecords"), Integer)
        End If
            
    ' Return total records in database
    Private Function GetmeDSCount() As Integer
        Dim connection As SqlConnection = New _
         SqlConnection(ConfigurationSettings.AppSettings("ConnectionString"))
        Dim command As SqlCommand = New SqlCommand("SELECT Count(*) FROM my_posts", connection)
        connection.Open()
        Dim count As Integer = CType(command.ExecuteScalar(), Integer)
        connection.Close()
        Return count
    End Function
Medlem sedan dec. 19991 072 inlägg
#2

Det beror helt klart på vad du är ute efter att göra.

Förklara närmare vad du vill uppnå!

Medlem sedan nov. 20017 144 inlägg
#3

Det är till en paginering på en repeater och jag tänkte istället för att hämta totalt antal poster vid varje "bläddring", så tänkte jag att det vore smart att lägga in värdet i viewstate vid första sidan eftersom att värdet är det samma på varje sida.

Medlem sedan dec. 19991 072 inlägg
#4

Ja, då funkar det bra. Såvida antalet poster inte förändras under tiden en användare är inne på sidan. För då kommer ju viewstate-värdet att vara fel.

253 ms totalt · 4 externa anrop · v20260731065814-full.86ec41c2
126 ms — deklarationer (db)
0 ms — hämta statistik (cache)
123 ms — hämta tråd, inlägg och bilagor (db)
127 ms — ändringar (db)