Udostępnij za pośrednictwem


SqlConnection Klasa

Definicja

Reprezentuje połączenie z bazą danych programu SQL Server. Klasa ta nie może być dziedziczona.

public ref class SqlConnection sealed : System::Data::Common::DbConnection
public ref class SqlConnection sealed : System::ComponentModel::Component, ICloneable, IDisposable, System::Data::IDbConnection
public ref class SqlConnection sealed : System::Data::Common::DbConnection, ICloneable
public sealed class SqlConnection : System.Data.Common.DbConnection
public sealed class SqlConnection : System.ComponentModel.Component, ICloneable, IDisposable, System.Data.IDbConnection
public sealed class SqlConnection : System.Data.Common.DbConnection, ICloneable
type SqlConnection = class
    inherit DbConnection
type SqlConnection = class
    inherit Component
    interface IDbConnection
    interface IDisposable
    interface ICloneable
type SqlConnection = class
    inherit DbConnection
    interface ICloneable
Public NotInheritable Class SqlConnection
Inherits DbConnection
Public NotInheritable Class SqlConnection
Inherits Component
Implements ICloneable, IDbConnection, IDisposable
Public NotInheritable Class SqlConnection
Inherits DbConnection
Implements ICloneable
Dziedziczenie
SqlConnection
Dziedziczenie
Dziedziczenie
Implementuje

Przykłady

Poniższy przykład tworzy obiekt SqlCommand i SqlConnection. Element SqlConnection jest otwarty i ustawiany jako Connection dla .SqlCommand Następnie przykład wywołuje metodę ExecuteNonQuery. W tym ExecuteNonQuery celu parametr jest przekazywany przez element SqlConnection i ciąg zapytania, który jest instrukcją Transact-SQL INSERT. Połączenie jest zamykane automatycznie, gdy kod zamyka blok using.

private static void CreateCommand(string queryString,
    string connectionString)
{
    using (SqlConnection connection = new SqlConnection(
               connectionString))
    {
        SqlCommand command = new SqlCommand(queryString, connection);
        command.Connection.Open();
        command.ExecuteNonQuery();
    }
}
Public Sub CreateCommand(ByVal queryString As String, _
  ByVal connectionString As String)
    Using connection As New SqlConnection(connectionString)
        Dim command As New SqlCommand(queryString, connection)
        command.Connection.Open()
        command.ExecuteNonQuery()
    End Using
End Sub

Uwagi

Obiekt SqlConnection reprezentuje unikatową sesję w źródle danych programu SQL Server. W systemie bazy danych klienta/serwera jest to odpowiednik połączenia sieciowego z serwerem. SqlConnection program jest używany razem z SqlDataAdapter programem i SqlCommand w celu zwiększenia wydajności podczas nawiązywania połączenia z bazą danych programu Microsoft SQL Server. W przypadku wszystkich produktów programu SQL Server innych firm i innych źródeł danych obsługiwanych przez ole db użyj polecenia OleDbConnection.

Podczas tworzenia wystąpienia SqlConnectionprogramu wszystkie właściwości są ustawiane na ich wartości początkowe. Aby uzyskać listę tych wartości, zobacz SqlConnection konstruktor.

Zobacz ConnectionString listę słów kluczowych w parametrach połączenia.

SqlConnection Jeśli element wykracza poza zakres, nie zostanie zamknięty. W związku z tym należy jawnie zamknąć połączenie przez wywołanie Close metody lub Dispose. Close i Dispose są funkcjonalnie równoważne. Jeśli wartość Pooling buforowania połączeń jest ustawiona na true lub yes, połączenie bazowe zostanie zwrócone z powrotem do puli połączeń. Z drugiej strony, jeśli Pooling jest ustawiona na false lub no, bazowe połączenie z serwerem jest rzeczywiście zamknięte.

Uwaga

Zdarzenia logowania i wylogowania nie będą zgłaszane na serwerze, gdy połączenie zostanie pobrane lub zwrócone do puli połączeń, ponieważ połączenie nie zostanie faktycznie zamknięte po powrocie do puli połączeń. Aby uzyskać więcej informacji, zobacz Sql Server Connection Pooling (ADO.NET).

Aby upewnić się, że połączenia są zawsze zamknięte, otwórz połączenie wewnątrz using bloku, jak pokazano w poniższym fragcie kodu. Dzięki temu połączenie zostanie automatycznie zamknięte po zamknięciu bloku przez kod.

Using connection As New SqlConnection(connectionString)
    connection.Open()
    ' Do work here; connection closed on following line.
End Using
using (SqlConnection connection = new SqlConnection(connectionString))
    {
        connection.Open();
        // Do work here; connection closed on following line.
    }

Uwaga

Aby wdrożyć aplikacje o wysokiej wydajności, należy użyć buforowania połączeń. W przypadku korzystania z dostawcy danych programu .NET Framework dla programu SQL Server nie trzeba włączać buforowania połączeń, ponieważ dostawca zarządza tym automatycznie, chociaż można zmodyfikować niektóre ustawienia. Aby uzyskać więcej informacji, zobacz Sql Server Connection Pooling (ADO.NET).

Jeśli element SqlException jest generowany przez metodę wykonującą SqlCommandelement , SqlConnection pozostaje otwarty, gdy poziom ważności wynosi 19 lub mniej. Gdy poziom ważności wynosi 20 lub więcej, serwer zwykle zamyka element SqlConnection. Użytkownik może jednak ponownie otworzyć połączenie i kontynuować.

Aplikacja, która tworzy wystąpienie SqlConnection obiektu, może wymagać od wszystkich wywołań bezpośrednich i pośrednich wystarczających uprawnień do kodu przez ustawienie deklaratywnych lub imperatywnych wymagań dotyczących zabezpieczeń. SqlConnection sprawia, że wymagania dotyczące zabezpieczeń korzystają z SqlClientPermission obiektu . Użytkownicy mogą sprawdzić, czy ich kod ma wystarczające uprawnienia przy użyciu SqlClientPermissionAttribute obiektu . Użytkownicy i administratorzy mogą również używać Caspol.exe (narzędzia zasad zabezpieczeń dostępu kodu) do modyfikowania zasad zabezpieczeń na poziomie komputera, użytkownika i przedsiębiorstwa. Aby uzyskać więcej informacji, zobacz Zabezpieczenia na platformie .NET. Przykład pokazujący sposób używania wymagań dotyczących zabezpieczeń można znaleźć w temacie Code Access Security and ADO.NET (Zabezpieczenia dostępu kodu i ADO.NET).

Aby uzyskać więcej informacji na temat obsługi komunikatów ostrzegawczych i informacyjnych z serwera, zobacz Zdarzenia połączenia. Aby uzyskać więcej informacji na temat błędów i komunikatów o błędach aparatu programu SQL Server, zobacz Zdarzenia i błędy aparatu bazy danych.

Przestroga

Zamiast pamięci współużytkowanej można wymusić użycie protokołu TCP. Można to zrobić, prefiksując tcp: do nazwy serwera w parametrach połączenia lub możesz użyć hosta lokalnego.

Konstruktory

SqlConnection()

Inicjuje nowe wystąpienie klasy SqlConnection.

SqlConnection(String)

Inicjuje SqlConnection nowe wystąpienie klasy, gdy podane parametry połączenia zawierają parametry połączenia.

SqlConnection(String, SqlCredential)

Inicjuje nowe wystąpienie SqlConnection klasy przy użyciu parametrów połączenia, które nie jest używane Integrated Security = true i SqlCredential obiekt, który zawiera identyfikator użytkownika i hasło.

Właściwości

AccessToken

Pobiera lub ustawia token dostępu dla połączenia.

CanCreateBatch

Pobiera wartość wskazującą, czy to DbConnection wystąpienie obsługuje klasę DbBatch .

(Odziedziczone po DbConnection)
CanRaiseEvents

Pobiera wartość wskazującą, czy składnik może zgłosić zdarzenie.

(Odziedziczone po Component)
ClientConnectionId

Identyfikator połączenia ostatniej próby połączenia, niezależnie od tego, czy próba zakończyła się powodzeniem, czy niepowodzeniem.

ColumnEncryptionKeyCacheTtl

Pobiera lub ustawia czas wygaśnięcia dla wpisów klucza szyfrowania kolumny w pamięci podręcznej klucza szyfrowania kolumny dla funkcji Always Encrypted . Wartość domyślna to 2 godziny. 0 oznacza brak buforowania.

ColumnEncryptionQueryMetadataCacheEnabled

Pobiera lub ustawia wartość wskazującą, czy buforowanie metadanych zapytania jest włączone (true), czy nie (false) dla sparametryzowanych zapytań uruchomionych w bazach danych z włączoną funkcją Always Encrypted . Wartością domyślną jest true.

ColumnEncryptionTrustedMasterKeyPaths

Umożliwia ustawienie listy zaufanych ścieżek kluczy dla serwera bazy danych. Jeśli podczas przetwarzania zapytania aplikacji sterownik odbiera ścieżkę klucza, która nie znajduje się na liście, zapytanie zakończy się niepowodzeniem. Ta właściwość zapewnia dodatkową ochronę przed atakami zabezpieczeń, które obejmują naruszone zabezpieczenia programu SQL Server udostępniające fałszywe ścieżki kluczy, co może prowadzić do wycieku poświadczeń magazynu kluczy.

ConnectionString

Pobiera lub ustawia ciąg używany do otwierania bazy danych programu SQL Server.

ConnectionTimeout

Pobiera czas oczekiwania (w sekundach) podczas próby nawiązania połączenia przed zakończeniem próby i wygenerowaniem błędu.

Container

Pobiera element IContainer zawierający element Component.

(Odziedziczone po Component)
Credential

Pobiera lub ustawia SqlCredential obiekt dla tego połączenia.

Database

Pobiera nazwę bieżącej bazy danych lub bazy danych do użycia po otwarciu połączenia.

DataSource

Pobiera nazwę wystąpienia programu SQL Server, z którym ma być nawiązane połączenie.

DbProviderFactory

Pobiera element DbProviderFactory dla tego DbConnectionpliku .

(Odziedziczone po DbConnection)
DesignMode

Pobiera wartość wskazującą, czy Component element jest obecnie w trybie projektowania.

(Odziedziczone po Component)
Events

Pobiera listę programów obsługi zdarzeń dołączonych do tego Componentelementu .

(Odziedziczone po Component)
FireInfoMessageEventOnUserErrors

Pobiera lub ustawia FireInfoMessageEventOnUserErrors właściwość .

PacketSize

Pobiera rozmiar (w bajtach) pakietów sieciowych używanych do komunikowania się z wystąpieniem programu SQL Server.

ServerVersion

Pobiera ciąg zawierający wersję wystąpienia programu SQL Server, z którym jest połączony klient.

Site

Pobiera lub ustawia wartość ISite .Component

(Odziedziczone po Component)
State

Wskazuje stan SqlConnection podczas ostatniej operacji sieciowej wykonanej na połączeniu.

StatisticsEnabled

Gdy jest ustawiona wartość true, włącza zbieranie statystyk dla bieżącego połączenia.

WorkstationId

Pobiera ciąg identyfikujący klienta bazy danych.

Metody

BeginDbTransaction(IsolationLevel)

Po zastąpieniu w klasie pochodnej uruchamia transakcję bazy danych.

(Odziedziczone po DbConnection)
BeginDbTransactionAsync(IsolationLevel, CancellationToken)

Asynchronicznie uruchamia transakcję bazy danych.

(Odziedziczone po DbConnection)
BeginTransaction()

Uruchamia transakcję bazy danych.

BeginTransaction(IsolationLevel)

Uruchamia transakcję bazy danych z określonym poziomem izolacji.

BeginTransaction(IsolationLevel, String)

Uruchamia transakcję bazy danych z określonym poziomem izolacji i nazwą transakcji.

BeginTransaction(String)

Uruchamia transakcję bazy danych o określonej nazwie transakcji.

BeginTransactionAsync(CancellationToken)

Asynchronicznie rozpoczyna transakcję bazy danych.

(Odziedziczone po DbConnection)
BeginTransactionAsync(IsolationLevel, CancellationToken)

Asynchronicznie rozpoczyna transakcję bazy danych.

(Odziedziczone po DbConnection)
ChangeDatabase(String)

Zmienia bieżącą bazę danych dla otwartej SqlConnectionbazy danych .

ChangeDatabaseAsync(String, CancellationToken)

Asynchronicznie zmienia bieżącą bazę danych dla otwartego połączenia.

(Odziedziczone po DbConnection)
ChangePassword(String, SqlCredential, SecureString)

Zmienia hasło programu SQL Server dla użytkownika wskazanego SqlCredential w obiekcie .

ChangePassword(String, String)

Zmienia hasło programu SQL Server dla użytkownika wskazanego w parametrach połączenia z podanym nowym hasłem.

ClearAllPools()

Opróżnia pulę połączeń.

ClearPool(SqlConnection)

Opróżnia pulę połączeń skojarzona z określonym połączeniem.

Close()

Zamyka połączenie z bazą danych. Jest to preferowana metoda zamykania dowolnego otwartego połączenia.

CloseAsync()

Asynchronicznie zamyka połączenie z bazą danych.

(Odziedziczone po DbConnection)
CreateBatch()

Zwraca nowe wystąpienie klasy dostawcy, która implementuje klasę DbBatch .

(Odziedziczone po DbConnection)
CreateCommand()

Tworzy i zwraca SqlCommand obiekt skojarzony z obiektem SqlConnection.

CreateDbBatch()

Po przesłonięciu w klasie pochodnej zwraca nowe wystąpienie klasy dostawcy, która implementuje klasę DbBatch .

(Odziedziczone po DbConnection)
CreateDbCommand()

Po zastąpieniu w klasie pochodnej program tworzy i zwraca DbCommand obiekt skojarzony z bieżącym połączeniem.

(Odziedziczone po DbConnection)
CreateObjRef(Type)

Tworzy obiekt zawierający wszystkie istotne informacje wymagane do wygenerowania serwera proxy używanego do komunikowania się z obiektem zdalnym.

(Odziedziczone po MarshalByRefObject)
Dispose()

Wykonuje zdefiniowane przez aplikację zadania skojarzone ze zwalnianiem lub resetowaniem zasobów niezarządzanych.

(Odziedziczone po DbConnection)
Dispose()

Zwalnia wszelkie zasoby używane przez element Component.

(Odziedziczone po Component)
Dispose(Boolean)

Zwalnia zasoby niezarządzane używane przez element DbConnection i opcjonalnie zwalnia zasoby zarządzane.

(Odziedziczone po DbConnection)
Dispose(Boolean)

Zwalnia zasoby niezarządzane używane przez element Component i opcjonalnie zwalnia zasoby zarządzane.

(Odziedziczone po Component)
DisposeAsync()

Asynchronicznie modyfikuje obiekt połączenia.

(Odziedziczone po DbConnection)
EnlistDistributedTransaction(ITransaction)

Enlists w określonej transakcji jako transakcji rozproszonej.

EnlistTransaction(Transaction)

Enlists w określonej transakcji jako transakcji rozproszonej.

EnlistTransaction(Transaction)

Enlists w określonej transakcji.

(Odziedziczone po DbConnection)
Equals(Object)

Określa, czy dany obiekt jest taki sam, jak bieżący obiekt.

(Odziedziczone po Object)
GetHashCode()

Służy jako domyślna funkcja skrótu.

(Odziedziczone po Object)
GetLifetimeService()
Przestarzałe.

Pobiera bieżący obiekt usługi okresu istnienia, który kontroluje zasady okresu istnienia dla tego wystąpienia.

(Odziedziczone po MarshalByRefObject)
GetSchema()

Zwraca informacje o schemacie dla źródła danych tego SqlConnectionelementu . Aby uzyskać więcej informacji na temat schematu, zobacz Kolekcje schematów programu SQL Server.

GetSchema()

Zwraca informacje o schemacie dla źródła danych tego DbConnectionelementu .

(Odziedziczone po DbConnection)
GetSchema(String)

Zwraca informacje o schemacie dla źródła SqlConnection danych przy użyciu określonego ciągu dla nazwy schematu.

GetSchema(String)

Zwraca informacje o schemacie dla źródła DbConnection danych przy użyciu określonego ciągu dla nazwy schematu.

(Odziedziczone po DbConnection)
GetSchema(String, String[])

Zwraca informacje o schemacie dla źródła SqlConnection danych przy użyciu określonego ciągu dla nazwy schematu i określonej tablicy ciągów dla wartości ograniczeń.

GetSchema(String, String[])

Zwraca informacje o schemacie dla źródła DbConnection danych przy użyciu określonego ciągu dla nazwy schematu i określonej tablicy ciągów dla wartości ograniczeń.

(Odziedziczone po DbConnection)
GetSchemaAsync(CancellationToken)

Jest to asynchroniczna wersja programu GetSchema(). Dostawcy powinni zastąpić odpowiednią implementacją. Opcjonalnie cancellationToken można je honorować. Domyślna implementacja wywołuje wywołanie synchroniczne GetSchema() i zwraca ukończone zadanie. Domyślna implementacja zwróci anulowane zadanie, jeśli zostało już anulowane cancellationToken. Wyjątki zgłaszane przez GetSchema() program będą przekazywane za pośrednictwem zwróconej właściwości Wyjątek zadania.

(Odziedziczone po DbConnection)
GetSchemaAsync(String, CancellationToken)

Jest to asynchroniczna wersja programu GetSchema(String). Dostawcy powinni zastąpić odpowiednią implementacją. Opcjonalnie cancellationToken można je honorować. Domyślna implementacja wywołuje wywołanie synchroniczne GetSchema(String) i zwraca ukończone zadanie. Domyślna implementacja zwróci anulowane zadanie, jeśli zostało już anulowane cancellationToken. Wyjątki zgłaszane przez GetSchema(String) program będą przekazywane za pośrednictwem zwróconej właściwości Wyjątek zadania.

(Odziedziczone po DbConnection)
GetSchemaAsync(String, String[], CancellationToken)

Jest to asynchroniczna wersja programu GetSchema(String, String[]). Dostawcy powinni zastąpić odpowiednią implementacją. Opcjonalnie cancellationToken można je honorować. Domyślna implementacja wywołuje wywołanie synchroniczne GetSchema(String, String[]) i zwraca ukończone zadanie. Domyślna implementacja zwróci anulowane zadanie, jeśli zostało już anulowane cancellationToken. Wyjątki zgłaszane przez GetSchema(String, String[]) program będą przekazywane za pośrednictwem zwróconej właściwości Wyjątek zadania.

(Odziedziczone po DbConnection)
GetService(Type)

Zwraca obiekt, który reprezentuje usługę dostarczaną przez Component obiekt lub przez element Container.

(Odziedziczone po Component)
GetType()

Type Pobiera wartość bieżącego wystąpienia.

(Odziedziczone po Object)
InitializeLifetimeService()
Przestarzałe.

Uzyskuje obiekt usługi okresu istnienia w celu kontrolowania zasad okresu istnienia dla tego wystąpienia.

(Odziedziczone po MarshalByRefObject)
MemberwiseClone()

Tworzy płytkią kopię bieżącego Objectelementu .

(Odziedziczone po Object)
MemberwiseClone(Boolean)

Tworzy płytkią kopię bieżącego MarshalByRefObject obiektu.

(Odziedziczone po MarshalByRefObject)
OnStateChange(StateChangeEventArgs)

StateChange Zgłasza zdarzenie.

(Odziedziczone po DbConnection)
Open()

Otwiera połączenie bazy danych z ustawieniami właściwości określonymi przez parametr ConnectionString.

OpenAsync()

Wersja asynchroniczna programu Open(), która otwiera połączenie bazy danych z ustawieniami określonymi przez .ConnectionString Ta metoda wywołuje metodę OpenAsync(CancellationToken) wirtualną z elementem CancellationToken.None.

(Odziedziczone po DbConnection)
OpenAsync(CancellationToken)

Wersja asynchroniczna programu Open(), która otwiera połączenie bazy danych z ustawieniami właściwości określonymi przez element ConnectionString. Token anulowania może służyć do żądania, aby operacja została porzucona przed upływem limitu czasu połączenia. Wyjątki będą propagowane za pośrednictwem zwróconego zadania. Jeśli limit czasu połączenia upłynie bez pomyślnego nawiązania połączenia, zwrócone zadanie zostanie oznaczone jako błędne z powodu wyjątku. Implementacja zwraca zadanie bez blokowania wątku wywołującego dla połączeń w puli i bez puli.

OpenAsync(CancellationToken)

Jest to asynchroniczna wersja programu Open(). Dostawcy powinni zastąpić odpowiednią implementacją. Token anulowania można opcjonalnie uhonorować.

Domyślna implementacja wywołuje wywołanie synchroniczne Open() i zwraca ukończone zadanie. Domyślna implementacja zwróci anulowane zadanie, jeśli przekazano już anulowane odwołanieToken. Wyjątki zgłaszane przez program Open będą przekazywane za pośrednictwem zwróconej właściwości Wyjątek zadania.

Nie należy wywoływać innych metod i właściwości DbConnection obiektu, dopóki zwrócone zadanie nie zostanie ukończone.

(Odziedziczone po DbConnection)
RegisterColumnEncryptionKeyStoreProviders(IDictionary<String,SqlColumnEncryptionKeyStoreProvider>)

Rejestruje dostawców magazynu kluczy szyfrowania kolumn.

ResetStatistics()

Jeśli zbieranie statystyk jest włączone, wszystkie wartości są resetowane do zera.

RetrieveStatistics()

Zwraca kolekcję par wartości nazw statystyk w momencie wywołania metody .

ToString()

Zwraca ciąg reprezentujący bieżący obiekt.

(Odziedziczone po Object)
ToString()

Zwraca wartość String zawierającą nazwę Componentobiektu , jeśli istnieje. Ta metoda nie powinna być zastępowana.

(Odziedziczone po Component)

Zdarzenia

Disposed

Występuje, gdy składnik jest usuwany przez wywołanie Dispose() metody .

(Odziedziczone po Component)
InfoMessage

Występuje, gdy program SQL Server zwraca ostrzeżenie lub komunikat informacyjny.

StateChange

Występuje, gdy zmienia się stan połączenia.

StateChange

Występuje, gdy zmienia się stan połączenia.

(Odziedziczone po DbConnection)

Jawne implementacje interfejsu

ICloneable.Clone()

Tworzy nowy obiekt, który jest kopią bieżącego wystąpienia.

IDbConnection.BeginTransaction()

Rozpoczyna transakcję bazy danych.

IDbConnection.BeginTransaction()

Rozpoczyna transakcję bazy danych.

(Odziedziczone po DbConnection)
IDbConnection.BeginTransaction(IsolationLevel)

Rozpoczyna transakcję bazy danych o określonej IsolationLevel wartości.

IDbConnection.BeginTransaction(IsolationLevel)

Rozpoczyna transakcję bazy danych o określonym poziomie izolacji.

(Odziedziczone po DbConnection)
IDbConnection.CreateCommand()

Tworzy i zwraca obiekt Command skojarzony z połączeniem.

IDbConnection.CreateCommand()

Tworzy i zwraca DbCommand obiekt skojarzony z bieżącym połączeniem.

(Odziedziczone po DbConnection)

Dotyczy

Zobacz też