Język

SqlConnection Klasa

Definicja

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

W przypadku nowego programowania użyj Microsoft. Data.SqlClient. Ta strona zawiera dokumenty System.Data.SqlClient.

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 element SqlCommand i .SqlConnection Właściwość SqlConnection jest otwierana i ustawiana jako Connection dla elementu SqlCommand. W tym przykładzie wywołamy metodę ExecuteNonQuery. W tym celu ExecuteNonQuery jest przekazywany 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 SQL Server. W przypadku systemu bazy danych klienta/serwera jest on odpowiednikiem połączenia sieciowego z serwerem. SqlConnection jest używany razem z SqlDataAdapter i SqlCommand w celu zwiększenia wydajności podczas nawiązywania połączenia z baza danych programu Microsoft SQL Server. W przypadku wszystkich produktów SQL Server innych firm i innych źródeł danych obsługiwanych przez ole db użyj 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 konstruktor SqlConnection.

Aby uzyskać listę słów kluczowych w parametry połączenia, zobacz ConnectionString.

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 puli 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 wartość false lub no, bazowe połączenie z serwerem jest rzeczywiście zamknięte.

Note

Zdarzenia logowania i wylogowywanie nie będą zgłaszane na serwerze, gdy połączenie zostanie pobrane z puli połączeń 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 fragmentze kodu. Dzięki temu połączenie zostanie automatycznie zamknięte po zakończeniu 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.
    }

Note

Aby wdrożyć aplikacje o wysokiej wydajności, należy użyć buforowania połączeń. W przypadku używania Dostawca danych .NET Framework dla 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).

SqlException Jeśli element 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 SqlConnectionwartość . Użytkownik może jednak ponownie otworzyć połączenie i kontynuować.

Aplikacja, która tworzy wystąpienie SqlConnection obiektu, może wymagać, aby wszystkie wywołania bezpośrednie i pośrednie miały wystarczające uprawnienia do kodu, ustawiając wymagania deklaratywne lub imperatywne 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. Aby zapoznać się z przykładem użycia wymagań dotyczących zabezpieczeń, zobacz 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 SQL Server, zobacz Database Engine Zdarzenia i błędy.

Caution

Możesz wymusić użycie protokołu TCP zamiast pamięci udostępnionej. Można to zrobić, prefiksując tcp: do nazwy serwera w parametry połączenia lub możesz użyć hosta lokalnego.

Konstruktory

Nazwisko Opis
SqlConnection()

Inicjuje nowe wystąpienie klasy SqlConnection.

W przypadku nowego programowania użyj Microsoft. Data.SqlClient. Ta strona zawiera dokumenty System.Data.SqlClient.

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 zawierający identyfikator użytkownika i hasło.

W przypadku nowego programowania użyj Microsoft. Data.SqlClient. Ta strona zawiera dokumenty System.Data.SqlClient.

SqlConnection(String)

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

W przypadku nowego programowania użyj Microsoft. Data.SqlClient. Ta strona zawiera dokumenty System.Data.SqlClient.

Właściwości

Nazwisko Opis
AccessToken

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

W przypadku nowego programowania użyj Microsoft. Data.SqlClient. Ta strona zawiera dokumenty System.Data.SqlClient.

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.

W przypadku nowego programowania użyj Microsoft. Data.SqlClient. Ta strona zawiera dokumenty System.Data.SqlClient.

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 w ogóle.

W przypadku nowego programowania użyj Microsoft. Data.SqlClient. Ta strona zawiera dokumenty System.Data.SqlClient.

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ść domyślna to true.

W przypadku nowego programowania użyj Microsoft. Data.SqlClient. Ta strona zawiera dokumenty System.Data.SqlClient.

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 SQL Server dostarczanie fałszywych ścieżek kluczy, co może prowadzić do wycieku poświadczeń magazynu kluczy.

W przypadku nowego programowania użyj Microsoft. Data.SqlClient. Ta strona zawiera dokumenty System.Data.SqlClient.

ConnectionString

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

W przypadku nowego programowania użyj Microsoft. Data.SqlClient. Ta strona zawiera dokumenty System.Data.SqlClient.

ConnectionTimeout

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

W przypadku nowego programowania użyj Microsoft. Data.SqlClient. Ta strona zawiera dokumenty System.Data.SqlClient.

Container

Pobiera IContainer, który zawiera Component.

(Odziedziczone po Component)
Credential

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

W przypadku nowego programowania użyj Microsoft. Data.SqlClient. Ta strona zawiera dokumenty System.Data.SqlClient.

Database

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

W przypadku nowego programowania użyj Microsoft. Data.SqlClient. Ta strona zawiera dokumenty System.Data.SqlClient.

DataSource

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

W przypadku nowego programowania użyj Microsoft. Data.SqlClient. Ta strona zawiera dokumenty System.Data.SqlClient.

DbProviderFactory

Pobiera element DbProviderFactory dla tego elementu DbConnection.

(Odziedziczone po DbConnection)
DesignMode

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

(Odziedziczone po Component)
Events

Pobiera listę programów obsługi zdarzeń dołączonych do tej Component.

(Odziedziczone po Component)
FireInfoMessageEventOnUserErrors

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

W przypadku nowego programowania użyj Microsoft. Data.SqlClient. Ta strona zawiera dokumenty System.Data.SqlClient.

PacketSize

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

W przypadku nowego programowania użyj Microsoft. Data.SqlClient. Ta strona zawiera dokumenty System.Data.SqlClient.

ServerVersion

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

W przypadku nowego programowania użyj Microsoft. Data.SqlClient. Ta strona zawiera dokumenty System.Data.SqlClient.

Site

Pobiera lub ustawia ISite dla Component.

(Odziedziczone po Component)
State

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

W przypadku nowego programowania użyj Microsoft. Data.SqlClient. Ta strona zawiera dokumenty System.Data.SqlClient.

StatisticsEnabled

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

W przypadku nowego programowania użyj Microsoft. Data.SqlClient. Ta strona zawiera dokumenty System.Data.SqlClient.

WorkstationId

Pobiera ciąg identyfikujący klienta bazy danych.

W przypadku nowego programowania użyj Microsoft. Data.SqlClient. Ta strona zawiera dokumenty System.Data.SqlClient.

Metody

Nazwisko Opis
BeginDbTransaction(IsolationLevel)

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

(Odziedziczone po DbConnection)
BeginTransaction()

Uruchamia transakcję bazy danych.

W przypadku nowego programowania użyj Microsoft. Data.SqlClient. Ta strona zawiera dokumenty System.Data.SqlClient.

BeginTransaction(IsolationLevel, String)

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

W przypadku nowego programowania użyj Microsoft. Data.SqlClient. Ta strona zawiera dokumenty System.Data.SqlClient.

BeginTransaction(IsolationLevel)

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

W przypadku nowego programowania użyj Microsoft. Data.SqlClient. Ta strona zawiera dokumenty System.Data.SqlClient.

BeginTransaction(String)

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

W przypadku nowego programowania użyj Microsoft. Data.SqlClient. Ta strona zawiera dokumenty System.Data.SqlClient.

ChangeDatabase(String)

Zmienia bieżącą bazę danych dla otwartego SqlConnectionpliku .

W przypadku nowego programowania użyj Microsoft. Data.SqlClient. Ta strona zawiera dokumenty System.Data.SqlClient.

ChangePassword(String, SqlCredential, SecureString)

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

W przypadku nowego programowania użyj Microsoft. Data.SqlClient. Ta strona zawiera dokumenty System.Data.SqlClient.

ChangePassword(String, String)

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

W przypadku nowego programowania użyj Microsoft. Data.SqlClient. Ta strona zawiera dokumenty System.Data.SqlClient.

ClearAllPools()

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

W przypadku nowego programowania użyj Microsoft. Data.SqlClient. Ta strona zawiera dokumenty System.Data.SqlClient.

ClearPool(SqlConnection)

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

W przypadku nowego programowania użyj Microsoft. Data.SqlClient. Ta strona zawiera dokumenty System.Data.SqlClient.

Close()

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

W przypadku nowego programowania użyj Microsoft. Data.SqlClient. Ta strona zawiera dokumenty System.Data.SqlClient.

CreateCommand()

Tworzy i zwraca SqlCommand obiekt skojarzony z obiektem SqlConnection.

W przypadku nowego programowania użyj Microsoft. Data.SqlClient. Ta strona zawiera dokumenty System.Data.SqlClient.

CreateDbCommand()

Po zastąpieniu w klasie pochodnej 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 zadania zdefiniowane przez aplikację skojarzone z zwalnianiem, wydawaniem lub resetowaniem niezarządzanych zasobów.

(Odziedziczone po DbConnection)
Dispose()

Zwalnia wszystkie zasoby używane przez program Component.

(Odziedziczone po Component)
Dispose(Boolean)

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

(Odziedziczone po DbConnection)
Dispose(Boolean)

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

(Odziedziczone po Component)
EnlistDistributedTransaction(ITransaction)

Enlists w określonej transakcji jako transakcji rozproszonej.

W przypadku nowego programowania użyj Microsoft. Data.SqlClient. Ta strona zawiera dokumenty System.Data.SqlClient.

EnlistTransaction(Transaction)

Enlists w określonej transakcji jako transakcji rozproszonej.

W przypadku nowego programowania użyj Microsoft. Data.SqlClient. Ta strona zawiera dokumenty System.Data.SqlClient.

Equals(Object)

Określa, czy określony obiekt jest równy bieżącemu obiektowi.

(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 SQL Server Kolekcje schematów.

W przypadku nowego programowania użyj Microsoft. Data.SqlClient. Ta strona zawiera dokumenty System.Data.SqlClient.

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ń.

W przypadku nowego programowania użyj Microsoft. Data.SqlClient. Ta strona zawiera dokumenty System.Data.SqlClient.

GetSchema(String)

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

W przypadku nowego programowania użyj Microsoft. Data.SqlClient. Ta strona zawiera dokumenty System.Data.SqlClient.

GetService(Type)

Zwraca obiekt reprezentujący usługę dostarczaną przez Component lub Container.

(Odziedziczone po Component)
GetType()

Pobiera Type 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 Object.

(Odziedziczone po Object)
MemberwiseClone(Boolean)

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

(Odziedziczone po MarshalByRefObject)
OnStateChange(StateChangeEventArgs)

StateChange Wywołuje zdarzenie.

(Odziedziczone po DbConnection)
Open()

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

W przypadku nowego programowania użyj Microsoft. Data.SqlClient. Ta strona zawiera dokumenty System.Data.SqlClient.

OpenAsync()

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

(Odziedziczone po DbConnection)
OpenAsync(CancellationToken)

Asynchroniczna wersja Open()programu , która otwiera połączenie bazy danych z ustawieniami właściwości określonymi ConnectionStringprzez element . Token anulowania może służyć do żądania porzucenia operacji 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 uszkodzone z wyjątkiem. Implementacja zwraca zadanie bez blokowania wątku wywołującego dla połączeń w puli i bez puli.

      <p>For new development, use <a href="/sql/connect/ado-net/introduction-microsoft-data-sqlclient-namespace">Microsoft.Data.SqlClient</a>. This page documents System.Data.SqlClient.</p>
RegisterColumnEncryptionKeyStoreProviders(IDictionary<String,SqlColumnEncryptionKeyStoreProvider>)

Rejestruje dostawców magazynu kluczy szyfrowania kolumn.

W przypadku nowego programowania użyj Microsoft. Data.SqlClient. Ta strona zawiera dokumenty System.Data.SqlClient.

ResetStatistics()

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

W przypadku nowego programowania użyj Microsoft. Data.SqlClient. Ta strona zawiera dokumenty System.Data.SqlClient.

RetrieveStatistics()

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

W przypadku nowego programowania użyj Microsoft. Data.SqlClient. Ta strona zawiera dokumenty System.Data.SqlClient.

ToString()

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

(Odziedziczone po Object)
ToString()

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

(Odziedziczone po Component)

Zdarzenia

Nazwisko Opis
Disposed

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

(Odziedziczone po Component)
InfoMessage

Występuje, gdy SQL Server zwraca komunikat ostrzegawczy lub informacyjny.

W przypadku nowego programowania użyj Microsoft. Data.SqlClient. Ta strona zawiera dokumenty System.Data.SqlClient.

StateChange

Występuje, gdy stan połączenia ulegnie zmianie.

W przypadku nowego programowania użyj Microsoft. Data.SqlClient. Ta strona zawiera dokumenty System.Data.SqlClient.

StateChange

Występuje, gdy stan połączenia ulegnie zmianie.

(Odziedziczone po DbConnection)

Jawne implementacje interfejsu

Nazwisko Opis
ICloneable.Clone()

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

W przypadku nowego programowania użyj Microsoft. Data.SqlClient. Ta strona zawiera dokumenty System.Data.SqlClient.

IDbConnection.BeginTransaction()

Rozpoczyna transakcję bazy danych.

W przypadku nowego programowania użyj Microsoft. Data.SqlClient. Ta strona zawiera dokumenty System.Data.SqlClient.

IDbConnection.BeginTransaction()

Rozpoczyna transakcję bazy danych.

(Odziedziczone po DbConnection)
IDbConnection.BeginTransaction(IsolationLevel)

Rozpoczyna transakcję bazy danych z określoną IsolationLevel wartością.

W przypadku nowego programowania użyj Microsoft. Data.SqlClient. Ta strona zawiera dokumenty System.Data.SqlClient.

IDbConnection.BeginTransaction(IsolationLevel)

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

(Odziedziczone po DbConnection)
IDbConnection.CreateCommand()

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

W przypadku nowego programowania użyj Microsoft. Data.SqlClient. Ta strona zawiera dokumenty System.Data.SqlClient.

IDbConnection.CreateCommand()

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

(Odziedziczone po DbConnection)

Dotyczy

Zobacz też