sql server - Åbning af en SQL-forbindelse på .NET Windows-program start og ikke lukning

Indlæg af Hanne Mølgaard Plasc

Problem



Jeg har et Windows-program med en startknap på hovedskærmen. Når jeg starter exe og klik på startknappen, åbnes en forbindelse til SQL-databasen. Jeg er ikke eksplicit lukket for forbindelsen på et hvilket som helst tidspunkt, medmindre det lukker af sig selv, hvorved jeg genskaber forbindelsen til db. Mit spørgsmål er, vil det medføre ydeevne problemer? Jeg tvivler på det, da kun en forbindelse til enhver tid er åben. Venligst råd. Tak på forhånd.


Koden er som nedenfor:


Privat Sub Form1\_Load (ByVal afsender Som System.Object, ByVal e As System.EventArgs) Håndterer MyBase.Load


    Timer1.Interval = 30000
    fnDbConnect()
    lblMessage.Text = ""
End Sub


Privat Sub btnStartSMS\_Click (ByVal afsender Som System.Object, ByVal e As System.EventArgs) Håndterer btnStartSMS.Click


    btnStartSMS.BackColor = Color.Red
    If ObjCn.State = ConnectionState.Open Then
        Timer1.Enabled = True
    Else
        If fnDbConnect() Then
            Timer1.Enabled = True
        Else
            MsgBox("An error occured while connecting to database. Please try later", MsgBoxStyle.Critical)
        End If

    End If

End Sub


Og ObjCn.State=ConnectionState.Closed er tjekket, hvor applikationen er og True, så kaldes fnDbConnect ().

Bedste reference


Da det ikke indeholder meget mere kodeskrivning, er det ikke meget fornuftigt, at du holder forbindelsen åben hele tiden. IMHO den bedste anbefaling er at bruge forbindelse pooling. Det vil også være en meget bedre praksis, når din ansøgning begynder at vokse. For alt det sagt kan du bare gøre dine sql-forbindelser på denne måde:


using (SqlConnection connection = new SqlConnection("yourConnectionString"))
{
    connection.Open();
    // Do whatever you need to do
    connection.Close();
}


Hvis du forbliver forbindelsen åben, vil denne forbindelse ikke være tilgængelig for nogle andre ting, der skal kommunikere til databaseserveren.
Også, hvis din forbindelse forbliver åben, vil det medføre, at din forbindelse slettes og bortskaffes, når affaldssamleren løber.
Grundlæggende skal du åbne og lukke din forbindelse, når du skal bruge den. Lad ikke dine forbindelser være åbne. For dette er den bedre brug åben som i eksemplet med using erklæringen. Det vil sikre, at din forbindelse er rettet, når operationen er færdig.