public static IList<ProviderInfo> GetSchemaProviderInfos(string pluginDir)
        {
            IList<IDatabaseProvider> providers = GetSchemaProviders(pluginDir);

            if (providers == null)
            {
                return new List<ProviderInfo>();
            }

            IList<ProviderInfo> providerInfos = new List<ProviderInfo>();
            ProviderInfo providerInfo;

            foreach (var provider in providers)
            {
                providerInfo = new ProviderInfo();
                providerInfo.Name = AttributeUtility.GetProviderName(provider.GetType());
                providerInfo.Provider = provider;
                providerInfos.Add(providerInfo);
            }

            return providerInfos;
        }
        private bool CheckConnection(ref ProviderInfo providerInfo)
        {
            bool connectSuccess = false;

            try
            {
                providerInfo.Provider.Database.ConnectionString = this.txtConnection.Text;
                connectSuccess = providerInfo.Provider.Database.Open();
            }
            catch (Exception ex)
            {
                MessageBox.Show("连接不成功:" + ex.Message);
                providerInfo = null;
                connectSuccess = false;
            }
            finally
            {
                if (providerInfo != null && connectSuccess)
                {
                    providerInfo.Provider.Database.Close();
                }
            }

            return connectSuccess;
        }