// 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; }
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); }