DataTableReader.GetSchemaTable 메서드
정의
중요
일부 정보는 릴리스되기 전에 상당 부분 수정될 수 있는 시험판 제품과 관련이 있습니다. Microsoft는 여기에 제공된 정보에 대해 어떠한 명시적이거나 묵시적인 보증도 하지 않습니다.
DataTable의 열 메타데이터를 정의하는 DataTableReader을 반환합니다.
public:
override System::Data::DataTable ^ GetSchemaTable();
public override System.Data.DataTable GetSchemaTable ();
override this.GetSchemaTable : unit -> System.Data.DataTable
Public Overrides Function GetSchemaTable () As DataTable
반환
열 메타데이터를 정의하는 DataTable입니다.
예외
예제
다음 콘솔 애플리케이션 예제에서는 지정된 된 열에 대 한 스키마 정보를 검색합니다. 전달 합니다 DisplaySchemaTableInfo
프로시저는 DataTableReader 및 내에서 열의 서 수 위치를 나타내는 정수를 DataTableReader
, 콘솔 창에 대 한 스키마 정보를 출력 하는 절차.
private static void TestGetSchemaTable()
{
// Set up the data adapter, using information from
// the AdventureWorks sample database.
// Modify the SQL expression to retrieve
// data from a different table.
SqlDataAdapter adapter =
SetupDataAdapter("SELECT * FROM Sales.Customer");
// Fill the DataTable, retrieving all the schema information.
adapter.MissingSchemaAction = MissingSchemaAction.AddWithKey;
DataTable table = new DataTable();
adapter.Fill(table);
// Create the DataTableReader, and close it when done.
using (DataTableReader reader = new DataTableReader(table))
{
// Modify the column number to display information
// about a column other than column 0.
DisplaySchemaTableInfo(reader, 0);
}
Console.WriteLine();
Console.WriteLine("Press Enter to finish.");
Console.ReadLine();
}
private static void DisplaySchemaTableInfo(
DataTableReader reader, int ordinal)
{
// Given a DataTableReader, display schema
// information about a particular column.
try
{
DataTable schemaTable = reader.GetSchemaTable();
DataRow row = schemaTable.Rows[ordinal];
foreach (DataColumn col in schemaTable.Columns)
{
Console.WriteLine("{0}: {1}",
col.ColumnName, row[col.Ordinal]);
}
}
catch (IndexOutOfRangeException ex)
{
Console.WriteLine("{0} is an invalid column number.",
ordinal);
}
}
private static SqlDataAdapter SetupDataAdapter(String sqlString)
{
// Assuming all the default settings, create a
// SqlDataAdapter working with the AdventureWorks
// sample database that's available with
// SQL Server.
String connectionString =
"Data source=(local);initial catalog=AdventureWorks;" +
"Integrated Security=True";
return new SqlDataAdapter(sqlString, connectionString);
}
Private Sub TestGetSchemaTable()
' Set up the data adapter, using information from
' the AdventureWorks sample database.
' Modify the SQL expression to retrieve
' data from a different table.
Dim adapter As SqlDataAdapter = _
SetupDataAdapter("SELECT * FROM Sales.Customer")
' Fill the DataTable, retrieving all the schema information.
adapter.MissingSchemaAction = MissingSchemaAction.AddWithKey
Dim table As New DataTable
adapter.Fill(table)
' Create the DataTableReader, and close it when done.
Using reader As New DataTableReader(table)
' Modify the column number to display information
' about a column other than column 0.
DisplaySchemaTableInfo(reader, 0)
End Using
Console.WriteLine()
Console.WriteLine("Press Enter to finish.")
Console.ReadLine()
End Sub
Private Sub DisplaySchemaTableInfo( _
ByVal reader As DataTableReader, ByVal ordinal As Integer)
' Given a DataTableReader, display schema
' information about a particular column.
Try
Dim schemaTable As DataTable = reader.GetSchemaTable()
Dim row As DataRow = schemaTable.Rows(ordinal)
For Each col As DataColumn In schemaTable.Columns
Console.WriteLine("{0}: {1}", _
col.ColumnName, row(col.Ordinal))
Next
Catch ex As IndexOutOfRangeException
Console.WriteLine("{0} is an invalid column number.", _
ordinal)
End Try
End Sub
Private Function SetupDataAdapter( _
ByVal sqlString As String) As SqlDataAdapter
' Assuming all the default settings, create a SqlDataAdapter
' working with the AdventureWorks sample database that's
' available with SQL Server.
Dim connectionString As String = _
"Data Source=(local);" & _
"Initial Catalog=AdventureWorks;" & _
"Integrated Security=true"
Return New SqlDataAdapter(sqlString, connectionString)
End Function
설명
GetSchemaTable 메서드를 다음 순서 대로 각 열에 대 한 메타 데이터를 반환합니다.
DataReader 열 | Description |
---|---|
ColumnName | 이 열의 이름이 나타나는 DataTable합니다. |
ColumnOrdinal | 열의 서 수 |
ColumnSize | -경우 1를 ColumnSize (또는 MaxLength)의 속성을 DataColumn 확인할 수 없거나 관련;이 고, 그렇지 0 또는 양의 정수를 포함 하는 MaxLength 값입니다. |
NumericPrecision | 열 형식 숫자 형식인 경우 열의 최대 전체 자릿수입니다. 열 형식이 숫자 데이터 형식이 아닌 경우 null 값입니다. |
NumericScale | 열 데이터 형식에 확장 구성 요소를 경우 소수점 오른쪽 자릿수를 반환 합니다. 그렇지 않으면 null 값을 반환 합니다. |
DataType | 열의 기본 형식입니다. |
ProviderType | 열 데이터 형식 표시기입니다. 이 값은 다양 한 경우 열의 데이터 형식을 행, Object합니다. 이 열에 null 값을 포함할 수 없습니다. |
IsLong | true 열의 데이터 형식이 String 고 MaxLength 속성이-1입니다. 그렇지 않으면 false 입니다. |
AllowDBNull | true AllowDbNull 제약 조건이 설정 된 경우 열을 true로 그렇지 않으면 false 합니다. |
IsReadOnly | true 이면 열을 수정할 수 없습니다. 그렇지 않으면 false 합니다. |
IsRowVersion | false 에서 모든 열에 대 한 합니다. |
IsUnique | true : 각 행에는 DataTable 이 열에 동일한 값을 가질 수 있습니다. IsUnique 이 열에만 적용 되는 UNIQUE 유형의 제약 조건이 있는 경우 또는 자체 열 키를 나타내면 true이 되도록 보장 됩니다. false :이 열에 중복 값이 포함 될 수 있습니다는 DataTable 합니다. 이 열의 기본값은 false 입니다. |
IsKey | true : 열이 열 집합 중 하나를 전체적으로 볼 때, 행을 고유 하 게 식별 된 DataTable합니다. 열 집합이 IsKey 로 설정 true 의 행을 고유 하 게 식별 해야 합니다는 DataTable 합니다. 이 열 집합이 열의 최소 집합일 필요는 없습니다. 이 열 집합에서 생성 될 수 있습니다는 DataTable 기본 키나 unique 제약 조건을 고유 인덱스. false :이 열은 행을 식별할 필요가 없습니다. 이 값은 true 열이 단일 또는 복합 기본 키에 참여 하는 경우. 그렇지 않으면 해당 값은 false 합니다. |
IsAutoIncrement | true :이 열을 고정 된 증가분의 새 행에 값을 할당합니다. false :이 열은 고정 된 증가분의 새 행에 값을 할당 하지 않습니다. 이 열의 기본값은 false 입니다. |
BaseCatalogName | 열이 포함된 데이터 저장소에 있는 카탈로그의 이름입니다. Null 기본 카탈로그 이름을 확인할 수 없습니다 하는 경우. 이 열에 대 한 기본값은을 null 값입니다. |
BaseSchemaName | 이 값은 항상 Null 합니다. |
BaseTableName | DataTable의 이름입니다. |
BaseColumnName | 열 이름을 DataTable합니다. |
AutoIncrementSeed | 값을 DataTable의 AutoIncrementSeed 속성입니다. |
AutoIncrementStep | 값을 DataTable의 AutoIncrementStep 속성입니다. |
DefaultValue | 값을 DataColumn의 DefaultValue 속성입니다. |
식 | 식 문자열의 경우 현재 열이 식 열 및 동일한 식에 사용 하는 모든 열이 속한 T:System.Data.DataTable 식 열을 포함 하 고, 그렇지 않으면 null 합니다. |
ColumnMapping | 합니다 MappingType 연관 된 값은 DataColumn합니다. 형식 중 하나일 수 있습니다 Attribute , Element 하십시오 Hidden , 또는 SimpleContent . 기본값은 Element 입니다. |
BaseTableNamespace | 값을 DataTable의 Namespace 속성입니다. |
BaseColumnNamespace | 값을 DataColumn의 Namespace 속성입니다. |
적용 대상
GitHub에서 Microsoft와 공동 작업
이 콘텐츠의 원본은 GitHub에서 찾을 수 있으며, 여기서 문제와 끌어오기 요청을 만들고 검토할 수도 있습니다. 자세한 내용은 참여자 가이드를 참조하세요.
.NET