public override IEnumerable <string> GetProviders() { List <string> provs = new List <string>(); RegistryKey key = Registry.ClassesRoot.OpenSubKey("CLSID"); foreach (string sub in key.GetSubKeyNames()) { RegistryKey subkey = key.OpenSubKey(sub); string prov = subkey.GetKeyValue("OLE DB Provider"); if (prov != null) { string proid = subkey.GetKeyValue("VersionIndependentProgID"); provs.Add(proid ?? prov); subkey.Close(); } } key.Close(); return(provs); }