IDbConnection Arabirim
Tanım
Önemli
Bazı bilgiler ürünün ön sürümüyle ilgilidir ve sürüm öncesinde önemli değişiklikler yapılmış olabilir. Burada verilen bilgilerle ilgili olarak Microsoft açık veya zımni hiçbir garanti vermez.
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 |
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 |