public async Task ChangeDatabaseNull() { var csb = AppConfig.CreateConnectionStringBuilder(); using var connection = new MySqlConnection(csb.ConnectionString); await Assert.ThrowsAsync <ArgumentException>(() => connection.ChangeDatabaseAsync(null)); await Assert.ThrowsAsync <ArgumentException>(() => connection.ChangeDatabaseAsync("")); }
public async Task ChangeDatabaseNotOpen() { var csb = AppConfig.CreateConnectionStringBuilder(); using var connection = new MySqlConnection(csb.ConnectionString); await Assert.ThrowsAsync <InvalidOperationException>(() => connection.ChangeDatabaseAsync(AppConfig.SecondaryDatabase)); }
public async Task ChangeDatabaseInvalidName() { var csb = AppConfig.CreateConnectionStringBuilder(); using var connection = new MySqlConnection(csb.ConnectionString); connection.Open(); await Assert.ThrowsAsync <MySqlException>(() => connection.ChangeDatabaseAsync($"not_a_real_database_1234")); Assert.Equal(ConnectionState.Open, connection.State); Assert.Equal(csb.Database, connection.Database); Assert.Equal(csb.Database, await QueryCurrentDatabaseAsync(connection)); }
public async Task ChangeDatabase() { var csb = AppConfig.CreateConnectionStringBuilder(); using var connection = new MySqlConnection(csb.ConnectionString); await connection.OpenAsync(); Assert.Equal(csb.Database, connection.Database); Assert.Equal(csb.Database, await QueryCurrentDatabaseAsync(connection)); await connection.ChangeDatabaseAsync(AppConfig.SecondaryDatabase); Assert.Equal(AppConfig.SecondaryDatabase, connection.Database); Assert.Equal(AppConfig.SecondaryDatabase, await QueryCurrentDatabaseAsync(connection)); }
protected async Task <Object> GetData( string database, string sql, ChartScaling scale, Func <IEnumerable <IDictionary <string, object> >, Object> proc_rows, CancellationToken token ) { var query_data = new List <Dictionary <string, object> >(); using (var conn = new MySqlConnection(Startup.Config["Datasource"])) { await conn.OpenAsync(token); await conn.ChangeDatabaseAsync(database, token); using (var cmd = new MySqlCommand(sql, conn)) { cmd.Parameters.Add(new MySqlParameter("points", scale.Points)); cmd.Parameters.Add(new MySqlParameter("interval", scale.Interval)); cmd.Parameters.Add(new MySqlParameter("start", scale.Start)); cmd.Parameters.Add(new MySqlParameter("end", scale.End)); using (var dr = await cmd.ExecuteReaderAsync(token)) { while (await dr.ReadAsync(token)) { var row = new Dictionary <string, object>(); for (var i = 0; i < dr.FieldCount; i++) { row.Add(dr.GetName(i), dr.GetValue(i)); } query_data.Add(row); } } } } return(proc_rows(query_data)); }
public async Task ChangeDatabaseConnectionPooling() { var csb = AppConfig.CreateConnectionStringBuilder(); csb.Pooling = true; csb.MinimumPoolSize = 0; csb.MaximumPoolSize = 6; for (int i = 0; i < csb.MaximumPoolSize * 2; i++) { using var connection = new MySqlConnection(csb.ConnectionString); await connection.OpenAsync(); Assert.Equal(csb.Database, connection.Database); Assert.Equal(csb.Database, await QueryCurrentDatabaseAsync(connection)); await connection.ChangeDatabaseAsync(AppConfig.SecondaryDatabase); Assert.Equal(AppConfig.SecondaryDatabase, connection.Database); Assert.Equal(AppConfig.SecondaryDatabase, await QueryCurrentDatabaseAsync(connection)); } }