OleDbEnumerator.GetEnumerator(Type) 方法

定义

使用特定的 OLE DB 枚举器返回一个 OleDbDataReader 包含有关当前安装的 OLE DB 提供程序的信息,而无需类的 OleDbEnumerator 实例。

public:
 static System::Data::OleDb::OleDbDataReader ^ GetEnumerator(Type ^ type);
[System.Diagnostics.CodeAnalysis.RequiresDynamicCode("OleDbConnection is not AOT-compatible.")]
public static System.Data.OleDb.OleDbDataReader GetEnumerator(Type type);
public static System.Data.OleDb.OleDbDataReader GetEnumerator(Type type);
[<System.Diagnostics.CodeAnalysis.RequiresDynamicCode("OleDbConnection is not AOT-compatible.")>]
static member GetEnumerator : Type -> System.Data.OleDb.OleDbDataReader
static member GetEnumerator : Type -> System.Data.OleDb.OleDbDataReader
Public Shared Function GetEnumerator (type As Type) As OleDbDataReader

参数

type
Type

Type

返回

包含 OleDbDataReader 有关所请求的 OLE DB 访问接口的信息,使用指定的 OLE DB 枚举器。

属性

例外

提供程序不支持 ISourcesRowset

基础提供程序中发生了异常。

示例

以下控制台应用程序使用 MSDAENUM 组件检索有关所有 OLE DB 提供程序的信息,并在控制台窗口中显示信息。

Imports System.Data  
Imports System.Data.OleDb  

Module Module1  

  Sub Main()  
    Dim enumerator As New OleDbEnumerator  
    Dim reader As OleDbDataReader = _  
     OleDbEnumerator.GetEnumerator(Type.GetTypeFromProgID("MSDAENUM"))  

    DisplayData(reader)  

    Console.WriteLine("Press any key to continue.")  
    Console.ReadKey()  
  End Sub  

  Private Sub DisplayData(ByVal reader As OleDbDataReader)  
    While reader.Read()  
      For i As Integer = 0 To reader.FieldCount - 1  
        Console.WriteLine("{0} = {1}", _  
         reader.GetName(i), reader.GetValue(i))  
      Next  
      Console.WriteLine("==================================")  
    End While  

  End Sub  
End Module  
using System;  
using System.Data;  
using System.Data.OleDb;  

class Program  
{  
 static void Main()  
 {  
   OleDbDataReader reader =   
     OleDbEnumerator.GetEnumerator(Type.GetTypeFromProgID("MSDAENUM"));  

   DisplayData(reader);  

   Console.WriteLine("Press any key to continue.");  
   Console.ReadKey();  
 }  

 static void DisplayData(OleDbDataReader reader)  
 {  
   while (reader.Read())  
   {  
     for (int i = 0; i < reader.FieldCount; i++)  
     {  
       Console.WriteLine("{0} = {1}",  
        reader.GetName(i), reader.GetValue(i));  
     }  
     Console.WriteLine("==================================");  
   }  
 }  
}  

注解

此方法返回的读取器包含以下列,所有这些列都包含字符串:

列序号 Description
0 SOURCES_NAME 本机 OLE DB 数据源或枚举器的固定名称。
1 SOURCES_PARSENAME 可以使用本机 COM 接口 IParseDisplayName 转换为名字对象的用户可读名称。 对应于本机 OLE DB 源行集返回的SOURCES_PARSENAME列。
2 SOURCES_DESCRIPTION 本机 OLE DB 数据源的说明。 对应于本机 OLE DB 源行集返回的SOURCES_DESCRIPTION列。
3 SOURCES_TYPE 下列枚举成员之一:Binder (0)、DataSource_MDP (1)、DataSource_TDP (2)、枚举器 (3)。 这些值对应于本机 OLE DB 源行集SOURCES_TYPE列中返回的值。
4 SOURCES_ISPARENT 仅适用于枚举器。 如果 true为 ,则表示该条目适用于调用 GetSourcesRowset 的同一枚举器,这意味着该条目也包含在子枚举中。 对应于本机 OLE DB 源行集SOURCES_ISPARENT列

OLE DB 提供了多个枚举器组件,包括 MSDAENUM、MSDASQL 枚举器、SQLNCLI 枚举器、SQLOLEDB 枚举器等。 有关枚举器组件及其用法的详细信息,请参阅 OLE DB 程序员参考

适用于