IDataRecord 인터페이스
DataReader의 각 행에 있는 열 값에 대한 액세스를 제공하며, 관계형 데이터베이스에 액세스하는 .NET Framework 데이터 공급자에 의해 구현됩니다.
네임스페이스: System.Data
어셈블리: System.Data(system.data.dll)
구문
‘선언
Public Interface IDataRecord
‘사용 방법
Dim instance As IDataRecord
public interface IDataRecord
public interface class IDataRecord
public interface IDataRecord
public interface IDataRecord
설명
IDataReader 및 IDataRecord 인터페이스를 사용하면 상속하는 클래스가 DataReader 클래스를 구현하도록 할 수 있습니다. 이렇게 하면 결과 집합의 앞으로만 이동 가능한 스트림을 하나 이상 읽을 수 있습니다. DataReader 클래스에 대한 자세한 내용은 DataReader를 사용하여 데이터 검색를 참조하십시오. .NET Framework 데이터 공급자를 구현하는 방법에 대한 자세한 내용은 Implementing a .NET Framework Data Provider을 참조하십시오.
응용 프로그램은 IDataRecord 인터페이스의 인스턴스를 직접 만들지 않고 IDataRecord을 상속하는 클래스의 인스턴스를 만듭니다. 일반적으로 이 경우 Command 개체의 ExecuteReader 메서드를 통해 DataReader를 가져오는 방법을 사용합니다.
IDataRecord을 상속하는 클래스는 상속된 멤버를 모두 구현해야 하며 일반적으로 공급자 고유의 기능을 추가하기 위한 추가 멤버를 정의합니다.
DataReader를 구현하는 공급자는 CLR(공용 언어 런타임) 형식으로 데이터를 노출해야 합니다. 형식 강제 변환은 CLR에 포함되지 않은 일부 형식에 대해 정의되는데, 이러한 값은 CLR 형식을 따르는 대체 형식으로서 액세스할 수 있습니다. 예를 들어, 다음 표에서는 OLE DB 데이터 형식과 CLR 형식 간의 매핑을 보여 주며, CLR 형식 열의 괄호 안에 사용 가능한 대체 형식을 보여 줍니다.
OLE DB 형식 |
CLR 형식 |
---|---|
DBTYPE_BOOL |
Int16 |
DBTYPE_BSTR |
string |
DBTYPE_BYTES |
byte[] |
DBTYPE_CY |
Decimal |
DBTYPE_DATE |
DateTime |
DBTYPE_DBDATE |
DateTime |
DBTYPE_DBTIME |
DateTime |
DBTYPE_DBTIMESTAMP |
DateTime |
DBTYPE_DECIMAL |
Decimal |
DBTYPE_EMPTY |
null |
DBTYPE_ERROR |
ExternalException |
DBTYPE_FILETIME |
DateTime |
DBTYPE_GUID |
Guid |
DBTYPE_HCHAPTER |
지원되지 않음 |
DBTYPE_I1 |
SByte |
DBTYPE_I2 |
Int16 |
DBTYPE_I4 |
Int32 |
DBTYPE_I8 |
Int64 |
DBTYPE_IDISPATCH |
object |
DBTYPE_IUNKNOWN |
object |
DBTYPE_NULL |
DBNull.Value |
DBTYPE_NUMERIC |
Decimal |
DBTYPE_PROPVARIANT |
object |
DBTYPE_R4 |
Single |
DBTYPE_R8 |
Double |
DBTYPE_STR |
string |
DBTYPE_UDT |
지원되지 않음 |
DBTYPE_UI1 |
byte (Int16) |
DBTYPE_UI2 |
UInt16 (Int32) |
DBTYPE_UI4 |
UInt32 (Int64) |
DBTYPE_UI8 |
UInt64 (Decimal) |
DBTYPE_VARIANT |
object |
DBTYPE_VARNUMERIC |
지원되지 않음 |
DBTYPE_WSTR |
string |
예제
다음 예제에서는 파생 클래스인 SqlConnection, SqlCommand 및 SqlDataReader의 인스턴스를 만듭니다. 이 예제에서는 데이터를 읽고 해당 데이터를 콘솔에 씁니다. 마지막으로 SqlDataReader, SqlConnection을 차례로 닫습니다.
Private Sub ReadOrderData(ByVal connectionString As String)
Dim queryString As String = _
"SELECT OrderID, CustomerID FROM dbo.Orders;"
Using connection As New SqlConnection(connectionString)
Dim command As New SqlCommand(queryString, connection)
connection.Open()
Dim reader As SqlDataReader = command.ExecuteReader()
' Call Read before accessing data.
While reader.Read()
Console.WriteLine(String.Format("{0}, {1}", _
reader(0), reader(1)))
End While
' Call Close when done reading.
reader.Close()
End Using
End Sub
private static void ReadOrderData(string connectionString)
{
string queryString =
"SELECT OrderID, CustomerID FROM dbo.Orders;";
using (SqlConnection connection =
new SqlConnection(connectionString))
{
SqlCommand command =
new SqlCommand(queryString, connection);
connection.Open();
SqlDataReader reader = command.ExecuteReader();
// Call Read before accessing data.
while (reader.Read())
{
Console.WriteLine(String.Format("{0}, {1}",
reader[0], reader[1]));
}
// Call Close when done reading.
reader.Close();
}
}
플랫폼
Windows 98, Windows 2000 SP4, Windows CE, Windows Millennium Edition, Windows Mobile for Pocket PC, Windows Mobile for Smartphone, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition
.NET Framework에서 모든 플래폼의 모든 버전을 지원하지는 않습니다. 지원되는 버전의 목록은 시스템 요구 사항을 참조하십시오.
버전 정보
.NET Framework
2.0, 1.1, 1.0에서 지원
.NET Compact Framework
2.0, 1.0에서 지원