IDbConnection Arabirim

Tanım

Bir veri kaynağına açık bağlantıyı temsil eder ve ilişkisel veritabanlarına erişen .NET veri sağlayıcıları tarafından uygulanır.

public interface class IDbConnection : IDisposable
public interface IDbConnection : IDisposable
type IDbConnection = interface
    interface IDisposable
Public Interface IDbConnection
Implements IDisposable
Türetilmiş
Uygulamalar

Örnekler

Aşağıdaki örnek, SqlCommand türetilmiş sınıfların ve SqlConnectionörneklerini oluşturur. SqlConnection açılır ve için SqlCommandolarak Connection ayarlanır. Örnek daha sonra öğesini çağırır ExecuteNonQueryve bağlantıyı kapatır. Bunu başarmak için, ExecuteNonQuery bir bağlantı dizesi ve Transact-SQL INSERT deyimi olan bir sorgu dizesi geçirilir.

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

Açıklamalar

Arabirim, IDbConnection devralan bir sınıfın, veri kaynağıyla (örneğin, bir sunucuya ağ bağlantısı) sahip benzersiz bir oturumu temsil eden bir Connection sınıfı uygulamasını sağlar. Bağlantı sınıfları hakkında daha fazla bilgi için bkz. Veri Kaynağına Bağlanma.

Bir uygulama doğrudan arabirimin bir örneğini IDbConnection oluşturmaz, ancak devralan IDbConnectionbir sınıfın örneğini oluşturur.

Devralan IDbConnection sınıfların devralınan tüm üyeleri uygulaması ve genellikle sağlayıcıya özgü işlevler eklemek için ek üyeler tanımlaması gerekir. Örneğin, IDbConnection arabirimi özelliğini tanımlar ConnectionTimeout . Buna karşılık, SqlConnection sınıfı bu özelliği devralır ve ayrıca özelliğini tanımlar PacketSize .

Uygulayanlara Notlar

.NET Framework veri sağlayıcıları arasında tutarlılığı artırmak için, devralan sınıfı, belirli bir .NET Framework veri sağlayıcısı ad alanında tüm sınıflara verilen tekdüzen ön ek olduğu Prv biçimde PrvClassname adlandırın. Örneğin, Sql ad alanında System.Data.SqlClient sınıfının ön ekidirSqlConnection.

Arabiriminden IDbConnection devraldığınızda aşağıdaki oluşturucuları uygulamanız gerekir:

Öğe Açıklama
PrvConnection() PrvConnection sınıfının yeni bir örneğini başlatır.
PrvConnection(string connectionString) bağlantı dizesi içeren bir dize verildiğinde PrvConnection sınıfının yeni bir örneğini başlatır.

Özellikler

ConnectionString

Veritabanını açmak için kullanılan dizeyi alır veya ayarlar.

ConnectionTimeout

Denemeyi sonlandırmadan ve hata oluşturmadan önce bağlantı kurmaya çalışırken bekleme süresini (saniye cinsinden) alır.

Database

Bağlantı açıldıktan sonra kullanılacak geçerli veritabanının veya veritabanının adını alır.

State

Bağlantının geçerli durumunu alır.

Yöntemler

BeginTransaction()

Bir veritabanı işlemi başlatır.

BeginTransaction(IsolationLevel)

Belirtilen IsolationLevel değerle bir veritabanı işlemi başlatır.

ChangeDatabase(String)

Açık Connection bir nesne için geçerli veritabanını değiştirir.

Close()

Veritabanı bağlantısını kapatır.

CreateCommand()

Bağlantıyla ilişkilendirilmiş bir Command nesnesi oluşturur ve döndürür.

Dispose()

Uygulama tarafından tanımlanan, yönetilmeyen kaynakları serbest bırakma, salma veya sıfırlama ile ilişkili görevleri gerçekleştirir.

(Devralındığı yer: IDisposable)
Open()

Sağlayıcıya özgü Connection nesnesinin özelliği tarafından ConnectionString belirtilen ayarlarla bir veritabanı bağlantısı açar.

Şunlara uygulanır