IDataRecord 인터페이스
정의
중요
일부 정보는 릴리스되기 전에 상당 부분 수정될 수 있는 시험판 제품과 관련이 있습니다. Microsoft는 여기에 제공된 정보에 대해 어떠한 명시적이거나 묵시적인 보증도 하지 않습니다.
에 대한 각 행 내의 열 값에 대한 DataReader액세스를 제공하고 관계형 데이터베이스에 액세스하는 .NET 데이터 공급자에 의해 구현됩니다.
public interface class IDataRecord
public interface IDataRecord
type IDataRecord = interface
Public Interface IDataRecord
- 파생
예제
다음 예제에서는 파생 클래스의 인스턴스를 만듭니다. SqlConnectionSqlCommandSqlDataReader 이 예제에서는 데이터를 읽고 콘솔에 기록합니다. 마지막으로, 이 예제에서는 닫은 SqlDataReader다음 SqlConnection.
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())
{
ReadSingleRow((IDataRecord)reader);
}
// Call Close when done reading.
reader.Close();
}
}
private static void ReadSingleRow(IDataRecord dataRecord)
{
Console.WriteLine(String.Format("{0}, {1}", dataRecord[0], dataRecord[1]));
}
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()
ReadSingleRow(CType(reader, IDataRecord))
End While
' Call Close when done reading.
reader.Close()
End Using
End Sub
Private Sub ReadSingleRow(ByVal record As IDataRecord)
Console.WriteLine(String.Format("{0}, {1}", record(0), record(1)))
End Sub
설명
IDataReader 및 IDataRecord 인터페이스를 사용하면 상속 클래스가 클래스를 구현할 수 있습니다DataReader. 이렇게 하면 하나 이상의 정방향 전용 결과 집합 스트림을 읽을 수 있습니다. 클래스에 대한 DataReader 자세한 내용은 DataReader를 사용하여 데이터 검색을 참조하세요.
애플리케이션은 인터페이스의 인스턴스를 IDataRecord 직접 만들지 않지만 상속되는 클래스의 인스턴스를 만듭니다 IDataRecord. 일반적으로 개체의 DataReader 메서드를 ExecuteReader 통해 Command 가져와서 이 작업을 수행합니다.
상속 IDataRecord 되는 클래스는 상속된 모든 멤버를 구현해야 하며, 일반적으로 공급자별 기능을 추가하기 위해 추가 멤버를 정의해야 합니다.
CLR(공용 언어 런타임) 형식으로 데이터를 노출하려면 이를 구현하는 DataReader 공급자가 필요합니다. 형식 강제 변환은 CLR에 포함되지 않은 일부 형식에 대해 정의됩니다. 이러한 값은 CLR 형식을 준수하는 대체 형식으로 액세스할 수 있습니다. 예를 들어 다음 표에는 OLE DB 데이터 형식에서 CLR 형식으로의 제안된 매핑과 대체 형식이 괄호로 나열되어 있습니다.
| OLE DB 형식 | CLR 형식 |
|---|---|
| DBTYPE_BOOL | Int16 |
| DBTYPE_BSTR (바이너리 문자열 데이터 유형) | string |
| DBTYPE_BYTES | byte[] |
| DBTYPE_CY | 10 진수 |
| DBTYPE_날짜 | DateTime |
| DBTYPE_DBDATE | DateTime |
| DBTYPE_DBTIME | DateTime |
| DBTYPE_DBTIMESTAMP | DateTime |
| DB타입_데시멀 | 10 진수 |
| DBTYPE_EMPTY | 없음 |
| DBTYPE_ERROR | 외부 예외 |
| DBTYPE_FILETIME (디비타입_파일타임) | DateTime |
| DBTYPE_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 (숫자형 데이터베이스 타입) | 10 진수 |
| 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(10진수) |
| DBTYPE_VARIANT | object |
| DBTYPE_VARNUMERIC (가변 수치형 데이터 타입) | 지원되지 않음 |
| DBTYPE_WSTR | string |
속성
| Name | Description |
|---|---|
| FieldCount |
현재 행의 열 수를 가져옵니다. |
| Item[Int32] |
지정된 인덱스 위치에 있는 열을 가져옵니다. |
| Item[String] |
지정된 이름의 열을 가져옵니다. |
메서드
| Name | Description |
|---|---|
| GetBoolean(Int32) |
지정된 열의 값을 부울로 가져옵니다. |
| GetByte(Int32) |
지정된 열의 부호 없는 8비트 정수 값을 가져옵니다. |
| GetBytes(Int32, Int64, Byte[], Int32, Int32) |
지정된 열 오프셋에서 버퍼로 지정된 버퍼 오프셋부터 시작하여 배열로 바이트 스트림을 읽습니다. |
| GetChar(Int32) |
지정된 열의 문자 값을 가져옵니다. |
| GetChars(Int32, Int64, Char[], Int32, Int32) |
지정된 열 오프셋의 문자 스트림을 지정된 버퍼 오프셋에서 시작하여 배열로 버퍼로 읽습니다. |
| GetData(Int32) |
IDataReader 지정된 열 서수에 대한 값을 반환합니다. |
| GetDataTypeName(Int32) |
지정된 필드의 데이터 형식 정보를 가져옵니다. |
| GetDateTime(Int32) |
지정된 필드의 날짜 및 시간 데이터 값을 가져옵니다. |
| GetDecimal(Int32) |
지정된 필드의 고정 위치 숫자 값을 가져옵니다. |
| GetDouble(Int32) |
지정된 필드의 배정밀도 부동 소수점 번호를 가져옵니다. |
| GetFieldType(Int32) |
에서 Type 반환Object될 형식 GetValue(Int32) 에 해당하는 정보를 가져옵니다. |
| GetFloat(Int32) |
지정된 필드의 단정밀도 부동 소수점 번호를 가져옵니다. |
| GetGuid(Int32) |
지정된 필드의 GUID 값을 반환합니다. |
| GetInt16(Int32) |
지정한 필드의 부가된 16비트 정수 값을 가져옵니다. |
| GetInt32(Int32) |
지정한 필드의 부가된 32비트 정수 값을 가져옵니다. |
| GetInt64(Int32) |
지정된 필드의 부가된 64비트 정수 값을 가져옵니다. |
| GetName(Int32) |
찾을 필드의 이름을 가져옵니다. |
| GetOrdinal(String) |
명명된 필드의 인덱스 반환 |
| GetString(Int32) |
지정된 필드의 문자열 값을 가져옵니다. |
| GetValue(Int32) |
지정된 필드의 값을 반환합니다. |
| GetValues(Object[]) |
개체 배열을 현재 레코드의 열 값으로 채웁니다. |
| IsDBNull(Int32) |
지정된 필드가 null로 설정되었는지 여부를 반환합니다. |