SqlConnection Klas
Definitie
Belangrijk
Bepaalde informatie heeft betrekking op een voorlopige productversie die aanzienlijk kan worden gewijzigd voordat deze wordt uitgebracht. Microsoft biedt geen enkele expliciete of impliciete garanties met betrekking tot de informatie die hier wordt verstrekt.
Vertegenwoordigt een verbinding met een SQL Server-database. Deze klasse kan niet worden overgenomen.
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.ComponentModel.Component, ICloneable, IDisposable, System.Data.IDbConnection
public sealed class SqlConnection : System.Data.Common.DbConnection, ICloneable
type SqlConnection = class
inherit Component
interface IDbConnection
interface IDisposable
interface ICloneable
type SqlConnection = class
inherit DbConnection
interface ICloneable
Public NotInheritable Class SqlConnection
Inherits Component
Implements ICloneable, IDbConnection, IDisposable
Public NotInheritable Class SqlConnection
Inherits DbConnection
Implements ICloneable
- Overname
- Overname
- Implementeringen
Voorbeelden
In het volgende voorbeeld wordt een SqlCommand en een SqlConnection. De SqlConnection wordt geopend en ingesteld als de Connection voor de SqlCommand. Het voorbeeld roept ExecuteNonQueryvervolgens aan. Hiervoor wordt de ExecuteNonQuery doorgegeven aan een SqlConnection en een queryreeks die een Transact-SQL INSERT-instructie is. De verbinding wordt automatisch gesloten wanneer de code het gebruiksblok verlaat.
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
Opmerkingen
Een SqlConnection-object vertegenwoordigt een unieke sessie voor een SQL Server gegevensbron. Met een client-/serverdatabasesysteem is het gelijk aan een netwerkverbinding met de server. SqlConnection wordt samen met SqlDataAdapter en SqlCommand gebruikt om de prestaties te verbeteren bij het verbinden met een Microsoft SQL Server-database. Gebruik OleDbConnection voor alle SQL Server producten van derden en andere door OLE DB ondersteunde gegevensbronnen.
Wanneer u een exemplaar maakt, SqlConnectionworden alle eigenschappen ingesteld op de oorspronkelijke waarden. Zie de SqlConnection constructor voor een lijst met deze waarden.
Zie ConnectionString voor een lijst met trefwoorden in een verbindingsreeks.
Als het SqlConnection bereik buiten het bereik valt, wordt deze niet gesloten. Daarom moet u de verbinding expliciet sluiten door te bellen Close of Dispose.
Close en Dispose functioneel gelijkwaardig zijn. Als de waarde Pooling voor het groeperen van verbindingen is ingesteld op true of yes, wordt de onderliggende verbinding teruggezet naar de verbindingsgroep. Aan de andere kant, als Pooling deze is ingesteld op false of no, wordt de onderliggende verbinding met de server daadwerkelijk gesloten.
Note
Aanmeldings- en afmeldingsgebeurtenissen worden niet gegenereerd op de server wanneer een verbinding wordt opgehaald van of geretourneerd aan de verbindingsgroep, omdat de verbinding niet daadwerkelijk wordt gesloten wanneer deze wordt geretourneerd naar de verbindingsgroep. Zie SQL Server Connection Pooling (ADO.NET) voor meer informatie.
Als u ervoor wilt zorgen dat verbindingen altijd worden gesloten, opent u de verbinding binnen een using blok, zoals wordt weergegeven in het volgende codefragment. Dit zorgt ervoor dat de verbinding automatisch wordt gesloten wanneer de code het blok verlaat.
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
Als u toepassingen met hoge prestaties wilt implementeren, moet u verbindingspooling gebruiken. Wanneer u de .NET Framework-Data Provider voor SQL Server gebruikt, hoeft u verbindingspooling niet in te schakelen omdat de provider dit automatisch beheert, hoewel u bepaalde instellingen kunt wijzigen. Zie SQL Server Connection Pooling (ADO.NET) voor meer informatie.
Als een wordt SqlException gegenereerd door de methode waarmee een SqlCommandwordt uitgevoerd, blijft het SqlConnection open wanneer het ernstniveau 19 of minder is. Wanneer het ernstniveau 20 of hoger is, wordt de server gewoonlijk gesloten SqlConnection. De gebruiker kan de verbinding echter opnieuw openen en doorgaan.
Een toepassing die een exemplaar van het SqlConnection object maakt, kan vereisen dat alle directe en indirecte bellers voldoende machtigingen voor de code hebben door declaratieve of imperatieve beveiligingsvereisten in te stellen. SqlConnection stelt beveiligingsvereisten op met behulp van het SqlClientPermission object. Gebruikers kunnen controleren of hun code voldoende machtigingen heeft met behulp van het SqlClientPermissionAttribute object. Gebruikers en beheerders kunnen ook het Caspol.exe (Hulpprogramma voor codetoegangsbeveiligingsbeleid) gebruiken om beveiligingsbeleid op computer-, gebruikers- en ondernemingsniveau te wijzigen. Zie Beveiliging in .NET voor meer informatie. Zie Code Access Security and ADO.NET voor een voorbeeld van het gebruik van beveiligingsvereisten.
Zie Verbindingsevenementen voor meer informatie over het afhandelen van waarschuwings- en informatieve berichten van de server. Zie Database Engine Gebeurtenissen en fouten voor meer informatie over SQL Server enginefouten en foutberichten.
Waarschuwing
U kunt TCP afdwingen in plaats van gedeeld geheugen. U kunt dit doen door tcp voor tevoegen: naar de servernaam in de verbindingsreeks of u kunt localhost gebruiken.
Constructors
| Name | Description |
|---|---|
| SqlConnection() |
Initialiseert een nieuw exemplaar van de SqlConnection klasse. |
| SqlConnection(String, SqlCredential) |
Initialiseert een nieuw exemplaar van de klasse SqlConnection op basis van een verbindingsreeks, die geen gebruik maakt van |
| SqlConnection(String) |
Initialiseert een nieuw exemplaar van de klasse SqlConnection bij een tekenreeks die de verbindingsreeks bevat. |
Eigenschappen
| Name | Description |
|---|---|
| AccessToken |
Hiermee wordt het toegangstoken voor de verbinding opgehaald of ingesteld. |
| CanRaiseEvents |
Hiermee wordt een waarde opgehaald die aangeeft of het onderdeel een gebeurtenis kan genereren. (Overgenomen van Component) |
| ClientConnectionId |
De verbindings-id van de meest recente verbindingspoging, ongeacht of de poging is geslaagd of mislukt. |
| ColumnEncryptionKeyCacheTtl |
Hiermee haalt u de time-to-live op voor kolomversleutelingssleutelvermeldingen in de cache voor kolomversleutelingssleutels voor de functie Always Encrypted . De standaardwaarde is 2 uur. 0 betekent helemaal geen caching. |
| ColumnEncryptionQueryMetadataCacheEnabled |
Hiermee wordt een waarde opgehaald of ingesteld die aangeeft of caching van querymetagegevens is ingeschakeld (waar) of niet (onwaar) voor geparameteriseerde query's die worden uitgevoerd op databases met Always Encrypted . De standaardwaarde is waar. |
| ColumnEncryptionTrustedMasterKeyPaths |
Hiermee kunt u een lijst met vertrouwde sleutelpaden instellen voor een databaseserver. Als tijdens het verwerken van een toepassingsquery het stuurprogramma een sleutelpad ontvangt dat zich niet in de lijst bevindt, mislukt de query. Deze eigenschap biedt extra bescherming tegen beveiligingsaanvallen die betrekking hebben op een gecompromitteerde SQL Server die valse sleutelpaden bieden, wat kan leiden tot het lekken van referenties voor het sleutelarchief. |
| ConnectionString |
Hiermee haalt u de tekenreeks op die wordt gebruikt om een SQL Server-database te openen. |
| ConnectionTimeout |
Hiermee krijgt u de tijd die moet worden gewacht (in seconden) tijdens het tot stand brengen van een verbinding voordat u de poging beëindigt en een fout genereert. |
| Container |
Hiermee haalt u het IContainer bestand op dat de Component. (Overgenomen van Component) |
| Credential |
Hiermee wordt het SqlCredential object voor deze verbinding opgehaald of ingesteld. |
| Database |
Hiermee haalt u de naam op van de huidige database of de database die moet worden gebruikt nadat een verbinding is geopend. |
| DataSource |
Hiermee haalt u de naam op van het exemplaar van SQL Server waarmee verbinding moet worden gemaakt. |
| DbProviderFactory |
Krijgt het DbProviderFactory voor dit DbConnection. (Overgenomen van DbConnection) |
| DesignMode |
Hiermee wordt een waarde opgehaald die aangeeft of de Component momenteel in de ontwerpmodus is. (Overgenomen van Component) |
| Events |
Hiermee haalt u de lijst met gebeurtenis-handlers op die aan dit Componentbestand zijn gekoppeld. (Overgenomen van Component) |
| FireInfoMessageEventOnUserErrors |
Hiermee haalt u de eigenschap op of stelt u deze FireInfoMessageEventOnUserErrors in. |
| PacketSize |
Hiermee haalt u de grootte (in bytes) van netwerkpakketten op die worden gebruikt om te communiceren met een exemplaar van SQL Server. |
| ServerVersion |
Hiermee haalt u een tekenreeks op met de versie van het exemplaar van SQL Server waarmee de client is verbonden. |
| Site |
Haalt of stelt de ISite van de Component. (Overgenomen van Component) |
| State |
Geeft de status aan van de status van de SqlConnection tijdens de meest recente netwerkbewerking die op de verbinding is uitgevoerd. |
| StatisticsEnabled |
Als deze optie is ingesteld |
| WorkstationId |
Hiermee haalt u een tekenreeks op waarmee de databaseclient wordt geïdentificeerd. |
Methoden
| Name | Description |
|---|---|
| BeginDbTransaction(IsolationLevel) |
Wanneer deze wordt overschreven in een afgeleide klasse, start u een databasetransactie. (Overgenomen van DbConnection) |
| BeginTransaction() |
Hiermee start u een databasetransactie. |
| BeginTransaction(IsolationLevel, String) |
Hiermee start u een databasetransactie met het opgegeven isolatieniveau en de transactienaam. |
| BeginTransaction(IsolationLevel) |
Hiermee start u een databasetransactie met het opgegeven isolatieniveau. |
| BeginTransaction(String) |
Hiermee start u een databasetransactie met de opgegeven transactienaam. |
| ChangeDatabase(String) |
Hiermee wijzigt u de huidige database voor een geopende SqlConnectiondatabase. |
| ChangePassword(String, SqlCredential, SecureString) |
Hiermee wijzigt u het SQL Server-wachtwoord voor de gebruiker die is aangegeven in het object SqlCredential. |
| ChangePassword(String, String) |
Hiermee wijzigt u het SQL Server wachtwoord voor de gebruiker die in de verbindingsreeks is opgegeven in het opgegeven nieuwe wachtwoord. |
| ClearAllPools() |
Hiermee wordt de verbindingsgroep leeg gemaakt. |
| ClearPool(SqlConnection) |
Hiermee wordt de verbindingsgroep geleegd die is gekoppeld aan de opgegeven verbinding. |
| Close() |
Hiermee sluit u de verbinding met de database. Dit is de voorkeursmethode voor het sluiten van een open verbinding. |
| CreateCommand() |
Hiermee maakt en retourneert u een SqlCommand object dat is gekoppeld aan de SqlConnection. |
| CreateDbCommand() |
Wanneer deze wordt overschreven in een afgeleide klasse, maakt en retourneert u een DbCommand object dat is gekoppeld aan de huidige verbinding. (Overgenomen van DbConnection) |
| CreateObjRef(Type) |
Hiermee maakt u een object dat alle relevante informatie bevat die nodig is om een proxy te genereren die wordt gebruikt om te communiceren met een extern object. (Overgenomen van MarshalByRefObject) |
| Dispose() |
Alle resources die worden gebruikt door de Component. (Overgenomen van Component) |
| Dispose(Boolean) |
Publiceert de niet-beheerde resources die worden gebruikt door de Component beheerde resources en brengt eventueel de beheerde resources vrij. (Overgenomen van Component) |
| EnlistDistributedTransaction(ITransaction) |
Hiermee schakelt u de opgegeven transactie in als een gedistribueerde transactie. |
| EnlistTransaction(Transaction) |
Hiermee schakelt u de opgegeven transactie in als een gedistribueerde transactie. |
| Equals(Object) |
Bepaalt of het opgegeven object gelijk is aan het huidige object. (Overgenomen van Object) |
| GetHashCode() |
Fungeert als de standaardhashfunctie. (Overgenomen van Object) |
| GetLifetimeService() |
Hiermee haalt u het huidige levensduurserviceobject op waarmee het levensduurbeleid voor dit exemplaar wordt beheerd. (Overgenomen van MarshalByRefObject) |
| GetSchema() |
Retourneert schema-informatie voor de gegevensbron van deze SqlConnection. Zie SQL Server Schemaverzamelingen voor meer informatie over schema's. |
| GetSchema(String, String[]) |
Retourneert schemagegevens voor de gegevensbron hiervan met behulp van SqlConnection de opgegeven tekenreeks voor de schemanaam en de opgegeven tekenreeksmatrix voor de beperkingswaarden. |
| GetSchema(String) |
Retourneert schemagegevens voor de gegevensbron hiervan met behulp van SqlConnection de opgegeven tekenreeks voor de schemanaam. |
| GetService(Type) |
Hiermee wordt een object geretourneerd dat een service vertegenwoordigt die wordt geleverd door of door de Component service Container. (Overgenomen van Component) |
| GetType() |
Hiermee haalt u de Type huidige instantie op. (Overgenomen van Object) |
| InitializeLifetimeService() |
Hiermee haalt u een levensduurserviceobject op om het levensduurbeleid voor dit exemplaar te beheren. (Overgenomen van MarshalByRefObject) |
| MemberwiseClone() |
Hiermee maakt u een ondiepe kopie van de huidige Object. (Overgenomen van Object) |
| MemberwiseClone(Boolean) |
Hiermee maakt u een ondiepe kopie van het huidige MarshalByRefObject object. (Overgenomen van MarshalByRefObject) |
| OnStateChange(StateChangeEventArgs) |
Hiermee wordt de StateChange gebeurtenis gegenereerd. (Overgenomen van DbConnection) |
| Open() |
Hiermee opent u een databaseverbinding met de eigenschapsinstellingen die zijn opgegeven door de ConnectionString. |
| OpenAsync() |
Een asynchrone versie van Open(), waarmee een databaseverbinding wordt geopend met de instellingen die zijn opgegeven door de ConnectionString. Met deze methode wordt de virtuele methode OpenAsync(CancellationToken) aangeroepen met CancellationToken.None. (Overgenomen van DbConnection) |
| OpenAsync(CancellationToken) |
Een asynchrone versie van Open(), waarmee een databaseverbinding wordt geopend met de eigenschapsinstellingen die zijn opgegeven door de ConnectionString. Het annuleringstoken kan worden gebruikt om aan te vragen dat de bewerking wordt afgelaten voordat de time-out van de verbinding is verstreken. Uitzonderingen worden doorgegeven via de geretourneerde taak. Als de time-outtijd van de verbinding is verstreken zonder verbinding te maken, wordt de geretourneerde taak gemarkeerd als fout met een uitzondering. De implementatie retourneert een taak zonder de aanroepende thread te blokkeren voor zowel gegroepeerde als niet-poolverbindingen. |
| RegisterColumnEncryptionKeyStoreProviders(IDictionary<String,SqlColumnEncryptionKeyStoreProvider>) |
Registreert de providers van het kolomversleutelingssleutelarchief. |
| ResetStatistics() |
Als het verzamelen van statistieken is ingeschakeld, worden alle waarden opnieuw ingesteld op nul. |
| RetrieveStatistics() |
Retourneert een verzameling statistieken van een naamwaardepaar op het moment dat de methode wordt aangeroepen. |
| ToString() |
Retourneert een String met de naam van de Component, indien van toepassing. Deze methode mag niet worden overschreven. (Overgenomen van Component) |
gebeurtenis
| Name | Description |
|---|---|
| Disposed |
Treedt op wanneer het onderdeel wordt verwijderd door een aanroep naar de Dispose() methode. (Overgenomen van Component) |
| InfoMessage |
Treedt op wanneer SQL Server een waarschuwing of informatiebericht retourneert. |
| StateChange |
Treedt op wanneer de status van de verbinding verandert. |
| StateChange |
Treedt op wanneer de status van de verbinding verandert. (Overgenomen van DbConnection) |
Expliciete interface-implementaties
| Name | Description |
|---|---|
| ICloneable.Clone() |
Hiermee maakt u een nieuw object dat een kopie van het huidige exemplaar is. |
| IDbConnection.BeginTransaction() |
Begint een databasetransactie. |
| IDbConnection.BeginTransaction() |
Begint een databasetransactie. (Overgenomen van DbConnection) |
| IDbConnection.BeginTransaction(IsolationLevel) |
Hiermee begint u een databasetransactie met de opgegeven IsolationLevel waarde. |
| IDbConnection.BeginTransaction(IsolationLevel) |
Hiermee begint u een databasetransactie met het opgegeven isolatieniveau. (Overgenomen van DbConnection) |
| IDbConnection.CreateCommand() |
Hiermee maakt en retourneert u een opdrachtobject dat is gekoppeld aan de verbinding. |
| IDbConnection.CreateCommand() |
Hiermee maakt en retourneert u een DbCommand object dat is gekoppeld aan de huidige verbinding. (Overgenomen van DbConnection) |