IDbConnection Rozhraní

Definice

Představuje otevřené připojení ke zdroji dat a je implementováno .NET Framework zprostředkovateli dat, kteří přistupují k relačním databázím.Represents an open connection to a data source, and is implemented by .NET Framework data providers that access relational databases.

public interface class IDbConnection : IDisposable
public interface IDbConnection : IDisposable
type IDbConnection = interface
    interface IDisposable
Public Interface IDbConnection
Implements IDisposable
Odvozené
Implementuje

Příklady

Následující příklad vytvoří instance odvozených tříd, SqlCommand a SqlConnection.The following example creates instances of the derived classes, SqlCommand and SqlConnection. SqlConnection se otevře a nastaví jako Connection pro SqlCommand.The SqlConnection is opened and set as the Connection for the SqlCommand. Příklad pak zavolá ExecuteNonQuerya ukončí připojení.The example then calls ExecuteNonQuery, and closes the connection. K tomu je ExecuteNonQuery předán připojovací řetězec a řetězec dotazu, který je příkazem INSERT-SQL INSERT.To accomplish this, the ExecuteNonQuery is passed a connection string and a query string that is a Transact-SQL INSERT statement.

using System;
using System.Data;

namespace IDbConnectionSample {
   class Program {
      static void Main(string[] args) {
         IDbConnection connection;

         // First use a SqlClient connection
         connection = new System.Data.SqlClient.SqlConnection(@"Server=(localdb)\V11.0");
         Console.WriteLine("SqlClient\r\n{0}", GetServerVersion(connection));
         connection = new System.Data.SqlClient.SqlConnection(@"Server=(local);Integrated Security=true");
         Console.WriteLine("SqlClient\r\n{0}", GetServerVersion(connection));

         // Call the same method using ODBC
         // NOTE: LocalDB requires the SQL Server 2012 Native Client ODBC driver
         connection = new System.Data.Odbc.OdbcConnection(@"Driver={SQL Server Native Client 11.0};Server=(localdb)\v11.0");
         Console.WriteLine("ODBC\r\n{0}", GetServerVersion(connection));
         connection = new System.Data.Odbc.OdbcConnection(@"Driver={SQL Server Native Client 11.0};Server=(local);Trusted_Connection=yes");
         Console.WriteLine("ODBC\r\n{0}", GetServerVersion(connection));

         // Call the same method using OLE DB
         connection = new System.Data.OleDb.OleDbConnection(@"Provider=SQLNCLI11;Server=(localdb)\v11.0;Trusted_Connection=yes;");
         Console.WriteLine("OLE DB\r\n{0}", GetServerVersion(connection));
         connection = new System.Data.OleDb.OleDbConnection(@"Provider=SQLNCLI11;Server=(local);Trusted_Connection=yes;");
         Console.WriteLine("OLE DB\r\n{0}", GetServerVersion(connection));
         }

      public static string GetServerVersion(IDbConnection connection) {
         // Ensure that the connection is opened (otherwise executing the command will fail)
         ConnectionState originalState = connection.State;
         if (originalState != ConnectionState.Open)
            connection.Open();
         try {
            // Create a command to get the server version
            // NOTE: The query's syntax is SQL Server specific
            IDbCommand command = connection.CreateCommand();
            command.CommandText = "SELECT @@version";
            return (string)command.ExecuteScalar();
         }
         finally {
            // Close the connection if that's how we got it
            if (originalState == ConnectionState.Closed)
               connection.Close();
         }
      }
   }
}
Imports System.Data

Class Program

    Public Shared Sub Main(args As String())

        Dim connection As IDbConnection



        ' First use a SqlClient connection

        connection = New System.Data.SqlClient.SqlConnection("Server=(localdb)\V11.0")

        Console.WriteLine("SqlClient" & vbCr & vbLf & "{0}", GetServerVersion(connection))

        connection = New System.Data.SqlClient.SqlConnection("Server=(local);Integrated Security=true")

        Console.WriteLine("SqlClient" & vbCr & vbLf & "{0}", GetServerVersion(connection))



        ' Call the same method using ODBC

        ' NOTE: LocalDB requires the SQL Server 2012 Native Client ODBC driver

        connection = New System.Data.Odbc.OdbcConnection("Driver={SQL Server Native Client 11.0};Server=(localdb)\v11.0")

        Console.WriteLine("ODBC" & vbCr & vbLf & "{0}", GetServerVersion(connection))

        connection = New System.Data.Odbc.OdbcConnection("Driver={SQL Server Native Client 11.0};Server=(local);Trusted_Connection=yes")

        Console.WriteLine("ODBC" & vbCr & vbLf & "{0}", GetServerVersion(connection))


        ' Call the same method using OLE DB

        connection = New System.Data.OleDb.OleDbConnection("Provider=SQLNCLI11;Server=(localdb)\v11.0;Trusted_Connection=yes;")

        Console.WriteLine("OLE DB" & vbCr & vbLf & "{0}", GetServerVersion(connection))

        connection = New System.Data.OleDb.OleDbConnection("Provider=SQLNCLI11;Server=(local);Trusted_Connection=yes;")

        Console.WriteLine("OLE DB" & vbCr & vbLf & "{0}", GetServerVersion(connection))

    End Sub



    Public Shared Function GetServerVersion(connection As IDbConnection) As String

        ' Ensure that the connection is opened (otherwise executing the command will fail)

        Dim originalState As ConnectionState = connection.State

        If originalState <> ConnectionState.Open Then

            connection.Open()

        End If

        Try

            ' Create a command to get the server version

            ' NOTE: The query's syntax is SQL Server specific

            Dim command As IDbCommand = connection.CreateCommand()

            command.CommandText = "SELECT @@version"

            Return DirectCast(command.ExecuteScalar(), String)

        Finally

            ' Close the connection if that's how we got it

            If originalState = ConnectionState.Closed Then

                connection.Close()

            End If

        End Try

    End Function

End Class

Poznámky

Rozhraní IDbConnection umožňuje dědění třídy implementovat třídu připojení, která představuje jedinečnou relaci se zdrojem dat (například síťové připojení k serveru).The IDbConnection interface enables an inheriting class to implement a Connection class, which represents a unique session with a data source (for example, a network connection to a server). Další informace o třídách připojení najdete v tématu připojení ke zdroji dat.For more information about Connection classes, see Connecting to a Data Source.

Aplikace nevytváří instanci rozhraní IDbConnection přímo, ale vytvoří instanci třídy, která dědí IDbConnection.An application does not create an instance of the IDbConnection interface directly, but creates an instance of a class that inherits IDbConnection.

Třídy, které dědí IDbConnection musí implementovat všechny zděděné členy a obvykle definovat další členy pro přidání funkcí specifických pro poskytovatele.Classes that inherit IDbConnection must implement all inherited members, and typically define additional members to add provider-specific functionality. Například rozhraní IDbConnection definuje vlastnost ConnectionTimeout.For example, the IDbConnection interface defines the ConnectionTimeout property. Zase třída SqlConnection dědí tuto vlastnost a definuje také vlastnost PacketSize.In turn, the SqlConnection class inherits this property, and also defines the PacketSize property.

Poznámky pro implementátory

Chcete-li zvýšit konzistenci mezi .NET Framework zprostředkovateli dat, pojmenujte třídu dědění ve formuláři PrvClassname kde Prv je jednotná předpona zadaná pro všechny třídy v konkrétním oboru názvů .NET Framework zprostředkovatele dat.To promote consistency among .NET Framework data providers, name the inheriting class in the form PrvClassname where Prv is the uniform prefix given to all classes in a specific .NET Framework data provider namespace. Například Sql je předpona SqlConnection třídy v oboru názvů System.Data.SqlClient.For example, Sql is the prefix of the SqlConnection class in the System.Data.SqlClient namespace.

Při dědění z rozhraní IDbConnection byste měli implementovat následující konstruktory:When you inherit from the IDbConnection interface, you should implement the following constructors:

PoložkaItem PopisDescription
PrvConnection()PrvConnection() Inicializuje novou instanci třídy PrvConnection.Initializes a new instance of the PrvConnection class.
PrvConnection (řetězec připojovacího řetězce)PrvConnection(string connectionString) Inicializuje novou instanci třídy PrvConnection v případě, že je zadán řetězec obsahující připojovací řetězec.Initializes a new instance of the PrvConnection class when given a string containing the connection string.

Vlastnosti

ConnectionString

Získá nebo nastaví řetězec použitý k otevření databáze.Gets or sets the string used to open a database.

ConnectionTimeout

Získá čas čekání (v sekundách) při pokusu o navázání spojení před ukončením pokusu a vygenerováním chyby.Gets the time to wait (in seconds) while trying to establish a connection before terminating the attempt and generating an error.

Database

Získá název aktuální databáze nebo databáze, která se má použít po otevření připojení.Gets the name of the current database or the database to be used after a connection is opened.

State

Načte aktuální stav připojení.Gets the current state of the connection.

Metody

BeginTransaction()

Zahájí databázovou transakci.Begins a database transaction.

BeginTransaction(IsolationLevel)

Spustí databázovou transakci se zadanou hodnotou IsolationLevel.Begins a database transaction with the specified IsolationLevel value.

ChangeDatabase(String)

Změní aktuální databázi pro otevřený objekt Connection.Changes the current database for an open Connection object.

Close()

Ukončí připojení k databázi.Closes the connection to the database.

CreateCommand()

Vytvoří a vrátí objekt příkazu přidružený k připojení.Creates and returns a Command object associated with the connection.

Dispose()

Provádí úkoly definované aplikací, které jsou spojeny s uvolněním nebo obnovením nespravovaných prostředků.Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources.

(Zděděno od IDisposable)
Open()

Otevře připojení k databázi s nastavením určeným vlastností ConnectionString objektu připojení pro konkrétního zprostředkovatele.Opens a database connection with the settings specified by the ConnectionString property of the provider-specific Connection object.

Platí pro