Example #1
0
        // Gets a database connection to the MySQL database configured earlier in the setup.
        private IDbConnection GetMySqlConnection()
        {
            MySqlSetup sqlSetup           = m_state["mySqlSetup"] as MySqlSetup;
            string     connectionString   = (sqlSetup == null) ? null : sqlSetup.ConnectionString;
            string     dataProviderString = (sqlSetup == null) ? null : sqlSetup.DataProviderString;

            return(GetConnection(connectionString, dataProviderString));
        }
        /// <summary>
        /// Creates a new instance of the <see cref="MySqlDatabaseSetupScreen"/> class.
        /// </summary>
        public MySqlDatabaseSetupScreen()
        {
            m_mySqlSetup = new MySqlSetup();
            InitializeComponent();
            this.Loaded += new RoutedEventHandler(MySqlDatabaseSetupScreen_Loaded);

            string[] mySQLConnectorNetVersions = { "6.7.9.0", "6.7.8.0", "6.7.7.0", "6.7.6.0", "6.7.5.0", "6.7.4.0", "6.7.3.0", "6.7.2.0", "6.7.1.0", "6.7.0.0",
                                                   "6.6.9.0", "6.6.8.0", "6.6.7.0", "6.6.6.0", "6.6.5.0", "6.6.4.0", "6.6.3.0", "6.6.2.0", "6.6.1.0", "6.6.0.0",
                                                   "6.5.9.0", "6.5.8.0", "6.5.7.0", "6.5.6.0", "6.5.5.0", "6.5.4.0", "6.5.3.0", "6.5.2.0", "6.5.1.0", "6.5.0.0",
                                                   "6.4.9.0", "6.4.8.0", "6.4.7.0", "6.4.6.0", "6.4.5.0", "6.4.4.0", "6.4.3.0", "6.4.2.0", "6.4.1.0", "6.4.0.0",
                                                   "6.3.9.0", "6.3.8.0", "6.3.7.0", "6.3.6.0", "6.3.5.0", "6.3.4.0", "6.3.3.0", "6.3.2.0", "6.3.1.0", "6.3.0.0",
                                                   "6.2.9.0", "6.2.8.0", "6.2.7.0", "6.2.6.0", "6.2.5.0", "6.2.4.0", "6.2.3.0", "6.2.2.0", "6.2.1.0", "6.2.0.0",
                                                   "6.1.9.0", "6.1.8.0", "6.1.7.0", "6.1.6.0", "6.1.5.0", "6.1.4.0", "6.1.3.0", "6.1.2.0", "6.1.1.0", "6.1.0.0" };

            string assemblyNamePrefix = "MySql.Data, Version=";
            string assemblyNameSuffix = ", Culture=neutral, PublicKeyToken=c5687fc88969c44d";
            string assemblyName;

            m_dataProviderString = null;

            // Attempt to load latest version of the MySQL connector net to creator the proper data provider string
            foreach (string connectorNetVersion in mySQLConnectorNetVersions)
            {
                try
                {
                    // Create an assembly name based on this version of the MySQL Connector/NET
                    assemblyName = assemblyNamePrefix + connectorNetVersion + assemblyNameSuffix;

                    // See if this version of the MySQL Connector/NET can be loaded
                    Assembly assembly = Assembly.Load(new AssemblyName(assemblyName));

                    // If assembly load succeeded, create a valid data provider string
                    m_dataProviderString = "AssemblyName={" + assemblyName + "}; ConnectionType=MySql.Data.MySqlClient.MySqlConnection; AdapterType=MySql.Data.MySqlClient.MySqlDataAdapter";
                }
                catch
                {
                    // Nothing to do but try next version
                }
            }

            if (string.IsNullOrEmpty(m_dataProviderString))
            {
                m_dataProviderString = "AssemblyName={MySql.Data, Version=6.5.4.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d}; ConnectionType=MySql.Data.MySqlClient.MySqlConnection; AdapterType=MySql.Data.MySqlClient.MySqlDataAdapter";
            }

            m_mySqlSetup.DataProviderString = m_dataProviderString;
        }
        /// <summary>
        /// Creates a new instance of the <see cref="MySqlDatabaseSetupScreen"/> class.
        /// </summary>
        public MySqlDatabaseSetupScreen()
        {
            m_mySqlSetup = new MySqlSetup();
            InitializeComponent();
            this.Loaded += new RoutedEventHandler(MySqlDatabaseSetupScreen_Loaded);

            string[] mySQLConnectorNetVersions = { "6.7.9.0", "6.7.8.0", "6.7.7.0", "6.7.6.0", "6.7.5.0", "6.7.4.0", "6.7.3.0", "6.7.2.0", "6.7.1.0", "6.7.0.0",
                                                   "6.6.9.0", "6.6.8.0", "6.6.7.0", "6.6.6.0", "6.6.5.0", "6.6.4.0", "6.6.3.0", "6.6.2.0", "6.6.1.0", "6.6.0.0",
                                                   "6.5.9.0", "6.5.8.0", "6.5.7.0", "6.5.6.0", "6.5.5.0", "6.5.4.0", "6.5.3.0", "6.5.2.0", "6.5.1.0", "6.5.0.0",
                                                   "6.4.9.0", "6.4.8.0", "6.4.7.0", "6.4.6.0", "6.4.5.0", "6.4.4.0", "6.4.3.0", "6.4.2.0", "6.4.1.0", "6.4.0.0",
                                                   "6.3.9.0", "6.3.8.0", "6.3.7.0", "6.3.6.0", "6.3.5.0", "6.3.4.0", "6.3.3.0", "6.3.2.0", "6.3.1.0", "6.3.0.0",
                                                   "6.2.9.0", "6.2.8.0", "6.2.7.0", "6.2.6.0", "6.2.5.0", "6.2.4.0", "6.2.3.0", "6.2.2.0", "6.2.1.0", "6.2.0.0",
                                                   "6.1.9.0", "6.1.8.0", "6.1.7.0", "6.1.6.0", "6.1.5.0", "6.1.4.0", "6.1.3.0", "6.1.2.0", "6.1.1.0", "6.1.0.0" };

            string assemblyNamePrefix = "MySql.Data, Version=";
            string assemblyNameSuffix = ", Culture=neutral, PublicKeyToken=c5687fc88969c44d";
            string assemblyName;

            m_dataProviderString = null;

            // Attempt to load latest version of the MySQL connector net to creator the proper data provider string
            foreach (string connectorNetVersion in mySQLConnectorNetVersions)
            {
                try
                {
                    // Create an assembly name based on this version of the MySQL Connector/NET
                    assemblyName = assemblyNamePrefix + connectorNetVersion + assemblyNameSuffix;

                    // See if this version of the MySQL Connector/NET can be loaded
                    Assembly assembly = Assembly.Load(new AssemblyName(assemblyName));

                    // If assembly load succeeded, create a valid data provider string
                    m_dataProviderString = "AssemblyName={" + assemblyName + "}; ConnectionType=MySql.Data.MySqlClient.MySqlConnection; AdapterType=MySql.Data.MySqlClient.MySqlDataAdapter";
                }
                catch
                {
                    // Nothing to do but try next version
                }
            }

            if (string.IsNullOrEmpty(m_dataProviderString))
                m_dataProviderString = "AssemblyName={MySql.Data, Version=6.5.4.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d}; ConnectionType=MySql.Data.MySqlClient.MySqlConnection; AdapterType=MySql.Data.MySqlClient.MySqlDataAdapter";

            m_mySqlSetup.DataProviderString = m_dataProviderString;
        }
Example #4
0
        private IDbConnection OpenNewConnection()
        {
            IDbConnection connection = null;

            try
            {
                string databaseType       = m_state["newDatabaseType"].ToString();
                string connectionString   = string.Empty;
                string dataProviderString = string.Empty;

                if (databaseType == "SQLServer")
                {
                    SqlServerSetup sqlServerSetup = m_state["sqlServerSetup"] as SqlServerSetup;
                    connectionString   = sqlServerSetup.ConnectionString;
                    dataProviderString = sqlServerSetup.DataProviderString;

                    if (string.IsNullOrWhiteSpace(dataProviderString))
                    {
                        dataProviderString = "AssemblyName={System.Data, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089}; ConnectionType=System.Data.SqlClient.SqlConnection; AdapterType=System.Data.SqlClient.SqlDataAdapter";
                    }
                }
                else if (databaseType == "MySQL")
                {
                    MySqlSetup mySqlSetup = m_state["mySqlSetup"] as MySqlSetup;
                    connectionString   = mySqlSetup.ConnectionString;
                    dataProviderString = mySqlSetup.DataProviderString;

                    if (string.IsNullOrWhiteSpace(dataProviderString))
                    {
                        dataProviderString = "AssemblyName={MySql.Data, Version=6.5.4.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d}; ConnectionType=MySql.Data.MySqlClient.MySqlConnection; AdapterType=MySql.Data.MySqlClient.MySqlDataAdapter";
                    }
                }
                else if (databaseType == "Oracle")
                {
                    OracleSetup oracleSetup = m_state["oracleSetup"] as OracleSetup;
                    connectionString   = oracleSetup.ConnectionString;
                    dataProviderString = oracleSetup.DataProviderString;

                    if (string.IsNullOrWhiteSpace(dataProviderString))
                    {
                        dataProviderString = OracleSetup.DefaultDataProviderString;
                    }
                }
                else if (databaseType == "PostgreSQL")
                {
                    PostgresSetup postgresSetup = m_state["postgresSetup"] as PostgresSetup;
                    connectionString   = postgresSetup.ConnectionString;
                    dataProviderString = PostgresSetup.DataProviderString;
                }
                else
                {
                    string destination = m_state["sqliteDatabaseFilePath"].ToString();
                    connectionString   = "Data Source=" + destination + "; Version=3";
                    dataProviderString = "AssemblyName={System.Data.SQLite, Version=1.0.99.0, Culture=neutral, PublicKeyToken=db937bc2d44ff139}; ConnectionType=System.Data.SQLite.SQLiteConnection; AdapterType=System.Data.SQLite.SQLiteDataAdapter";
                }

                if (!string.IsNullOrEmpty(connectionString) && !string.IsNullOrEmpty(dataProviderString))
                {
                    Dictionary <string, string> dataProviderSettings = dataProviderString.ParseKeyValuePairs();
                    string assemblyName       = dataProviderSettings["AssemblyName"];
                    string connectionTypeName = dataProviderSettings["ConnectionType"];

                    Assembly assembly       = Assembly.Load(new AssemblyName(assemblyName));
                    Type     connectionType = assembly.GetType(connectionTypeName);
                    connection = (IDbConnection)Activator.CreateInstance(connectionType);
                    connection.ConnectionString = connectionString;
                    connection.Open();
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show("Failed to open new database connection: " + ex.Message, "Configuration Error", MessageBoxButton.OK, MessageBoxImage.Error);

                if (connection != null)
                {
                    connection.Dispose();
                }

                connection = null;
            }

            return(connection);
        }