IDbConnection 인터페이스
정의
중요
일부 정보는 릴리스되기 전에 상당 부분 수정될 수 있는 시험판 제품과 관련이 있습니다. Microsoft는 여기에 제공된 정보에 대해 어떠한 명시적이거나 묵시적인 보증도 하지 않습니다.
데이터 소스에 대한 열린 연결을 나타내며 관계형 데이터베이스에 액세스하는 .NET 데이터 공급자에 의해 구현됩니다.
public interface class IDbConnection : IDisposable
public interface IDbConnection : IDisposable
type IDbConnection = interface
interface IDisposable
Public Interface IDbConnection
Implements IDisposable
- 파생
- 구현
예제
다음 예제에서는 파생된 클래스의 인스턴스를 만듭니다 SqlCommand 고 SqlConnection입니다. SqlConnection 열고로 설정 합니다 Connection 에 대 한는 SqlCommand. 이 예제에서는 호출 ExecuteNonQuery, 연결을 닫습니다. 이 수행 하는 ExecuteNonQuery 연결 문자열 및 TRANSACT-SQL INSERT 문 쿼리 문자열로 전달 됩니다.
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
설명
IDbConnection 인터페이스는 데이터 원본 (예를 들어 서버에 네트워크 연결)를 사용 하 여 고유한 세션을 나타내는 연결 클래스를 구현 하는 상속 클래스를 사용 합니다. 연결 클래스에 대 한 자세한 내용은 참조 하세요. 데이터 원본에 연결할합니다.
애플리케이션의 인스턴스를 만들지 않습니다 합니다 IDbConnection 인터페이스를 직접 상속 된 클래스의 인스턴스를 만들고 있지만 IDbConnection합니다.
상속 된 클래스 IDbConnection 상속 된 모든 멤버를 구현 하 고 일반적으로 공급자 특정 기능을 추가 하기 위한 추가 멤버를 정의 해야 합니다. 예를 들어 합니다 IDbConnection 인터페이스를 정의 합니다 ConnectionTimeout 속성입니다. 차례로 합니다 SqlConnection 클래스는이 속성을 상속 하 고도 정의 합니다 PacketSize 속성입니다.
구현자 참고
.NET Framework 데이터 공급자 간의 일관성을 높이기 위해 상속 클래스의 이름을 형식 PrvClassname
으로 지정합니다. 여기서 Prv
는 특정 .NET Framework 데이터 공급자 네임스페이스의 모든 클래스에 지정된 균일한 접두사입니다. 예를 들어 Sql
접두사입니다 합니다 SqlConnection 클래스는 System.Data.SqlClient
네임 스페이스입니다.
상속 하는 경우는 IDbConnection 인터페이스 다음 생성자를 구현 해야 합니다.
항목 | 설명 |
---|---|
PrvConnection() | PrvConnection 클래스의 새 instance 초기화합니다. |
PrvConnection(string connectionString) | 연결 문자열 포함하는 문자열이 제공되면 PrvConnection 클래스의 새 instance 초기화합니다. |
속성
ConnectionString |
데이터베이스를 여는 데 사용되는 문자열을 가져오거나 설정합니다. |
ConnectionTimeout |
시도를 종료하고 오류를 생성하기 전에 연결하는 동안 대기할 시간(초 단위)을 가져옵니다. |
Database |
현재 데이터베이스 이름이나 연결이 열린 후 사용할 데이터베이스의 이름을 가져옵니다. |
State |
연결의 현재 상태를 가져옵니다. |
메서드
BeginTransaction() |
데이터베이스 트랜잭션을 시작합니다. |
BeginTransaction(IsolationLevel) |
지정된 IsolationLevel 값을 사용하여 데이터베이스 트랜잭션을 시작합니다. |
ChangeDatabase(String) |
열려 있는 |
Close() |
데이터베이스에 대한 연결을 닫습니다. |
CreateCommand() |
연결과 관련된 Command 개체를 만들고 반환합니다. |
Dispose() |
관리되지 않는 리소스의 확보, 해제 또는 다시 설정과 관련된 애플리케이션 정의 작업을 수행합니다. (다음에서 상속됨 IDisposable) |
Open() |
공급자별 Connection 개체의 |
적용 대상
.NET