private void selectSqlConnection(string connectionString, DBType dbType, string connectionName, bool isODBC) { if (!this.cbConnection.Items.OfType<LastDirectConnectionString>().Any( x => x.ConnectionString == connectionString && x.IsODBC == isODBC ) ) { LastDirectConnectionString newItem = new LastDirectConnectionString() { DataBaseType = dbType.Id.ToString(), ConnectionString = connectionString, IsODBC = isODBC, Name = connectionName }; this.cbConnection.Items.Add(newItem); this.cbConnection.SelectedItem = newItem; } else { LastDirectConnectionString item = this.cbConnection.Items.OfType<LastDirectConnectionString>() .First(x => x.ConnectionString == connectionString && x.IsODBC == isODBC); this.cbConnection.SelectedItem = item; } }
private static DbConnectionStringBuilder GetConnectionStringBuilder(LastDirectConnectionString connectionString) { if (connectionString.IsODBC) { return new OdbcConnectionStringBuilder(connectionString.ConnectionString); } DbConnectionStringBuilder builder; QuerySource dbType; if (Enum.TryParse(connectionString.DataBaseType, out dbType)) { switch (dbType) { case QuerySource.MSSQL: builder = new SqlConnectionStringBuilder(); break; case QuerySource.SQLite: // ODBC connection string builder is used // for SQLite internal connection // since it handles special connection string adequately builder = new OdbcConnectionStringBuilder(); break; default: builder = new DbConnectionStringBuilder(); break; } } else { builder = new DbConnectionStringBuilder(); } builder.ConnectionString = connectionString.ConnectionString; return builder; }