如何通过 SQL 或 .NET 的 OLEDB 获取索引名称?

How to get index names through SQL or OLEDB from .NET?

如何使用 OLEDB 或 SQL 获取 Access table 的索引名称?

(这两天在网上查了很多,没有找到与此问题相关的内容。)

OleDbConnection 有一个名为 GetSchema 的方法,它接受一个字符串 select 您要检索的元数据集合。

字符串参数的一些可能值是表、列、索引

using(OleDbConnection cnn = new OleDbConnection("...."))
{
    cnn.Open();
    DataTable schemaIndexes = cnn.GetSchema("Indexes");
    foreach(DataRow row in schemaIndexes.Rows)
    {
       Console.WriteLine("Table={0}, Index={1} on field={2}",
           row.Field<string>("TABLE_NAME"),
           row.Field<string>("INDEX_NAME"),
           row.Field<string>("COLUMN_NAME"));
    }
}