webForumDet fria alternativet

Datagrid, rätt eller fel?

.NET

0 svar · 164 visningar · startad av fredrik

Medlem sedan dec. 19991 072 inlägg
Frågan#1

Jag har gjort en enkel test asp.net sida för databas-logik. Tänkte nu bara kolla om jag har gjort på rätt sätt, eller om jag missat eller gjort nåt fel!

På sidan har jag en "DataGrid1" som heter "dg"

    Private sqlCmd As New SqlCommand("SELECT * FROM adotest", New SqlConnection("DB_CONN_STRING"))
    Private sqlAdpt As New SqlDataAdapter(sqlCmd)
    Private sqlDS As New DataSet()

    Dim sqlDV As New DataView()

    Private Sub fillDS()
        sqlAdpt.Fill(sqlDS)
        sqlDV.Table = sqlDS.Tables(0)
    End Sub

    Private Sub bindDG()
        dg.DataSource = sqlDV
        dg.DataBind()
    End Sub

    Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        'Put user code to initialize the page here
        Call fillDS()
        If Page.IsPostBack = False Then
            Call bindDG()
        End If

    End Sub

    Private Sub dg_SortCommand(ByVal source As Object, ByVal e As System.Web.UI.WebControls.DataGridSortCommandEventArgs) Handles dg.SortCommand
        sqlDV.Sort = e.SortExpression
        Call bindDG()
    End Sub

    Protected Overrides Sub Finalize()
        MyBase.Finalize()

        sqlDV.Dispose()
        sqlCmd.Dispose()
        sqlAdpt.Dispose()
        sqlDS.Dispose()

        sqlDV = Nothing
        sqlCmd = Nothing
        sqlAdpt = Nothing
        sqlDS = Nothing
    End Sub

Allting funkar ju perfekt, men rent kod och performance-mässigt finns det kanske nåt bättre sätt!

Jag vet att jag inte ska använda "Finalize"-händelsen, men det är väl det enda stället där jag kan göra egna "upp-rensningar", kan ju inte manuellt anropa en "Dispose"-metod från asp.net.

Tack på förhand!

267 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e
130 ms — deklarationer (db)
0 ms — hämta statistik (cache)
133 ms — hämta tråd, inlägg och bilagor (db)
127 ms — ändringar (db)