public async Task CreateTestTable() { sut = new SqlMigration(connectionString); var connectionStringWithoutDatabase = new SqlConnectionStringBuilder(connectionString) { InitialCatalog = string.Empty }.ConnectionString; await using var sqlConnection = new SqlConnection(connectionStringWithoutDatabase); await sqlConnection.OpenAsync(); try { await sqlConnection.ChangeDatabaseAsync(DatabaseName); } catch { await using var createDatabaseCommand = new SqlCommand($"CREATE DATABASE {DatabaseName}", sqlConnection); await createDatabaseCommand.ExecuteNonQueryAsync(); await sqlConnection.ChangeDatabaseAsync(DatabaseName); } if (!await sut.TableExistsAsync(TableName)) { var createTableCommandText = $"CREATE TABLE [{TableName}] (" + $"[{nameof(TestDataEntry.Id)}] INT NOT NULL PRIMARY KEY, " + $"[{nameof(TestDataEntry.Comment)}] VARCHAR(MAX) NULL, " + $"[{nameof(TestDataEntry.DoubleValue)}] DECIMAL(18, 2) NOT NULL," + "NotUsed INT NULL)"; await using var createTableCommand = new SqlCommand(createTableCommandText, sqlConnection); await createTableCommand.ExecuteNonQueryAsync(); } }
public SqlDataService(SqlDataServiceTarget target) { if (target.DataSource != "dkhoeinnsql01") { throw new ArgumentOutOfRangeException(nameof(target.DataSource), $"SQL data source '{target.DataSource}' is currently not supported"); } if (target.DatabaseName != "PowerBiData") { throw new ArgumentOutOfRangeException(nameof(target.DatabaseName), $"SQL database '{target.DatabaseName}' on {target.DataSource} is currently not supported"); } this.target = target; tablePath = GetTablePath(target); var sqlConnectionString = new SqlConnectionStringBuilder { DataSource = target.DataSource, InitialCatalog = target.DatabaseName, IntegratedSecurity = false, UserID = target.Username, Password = Secrets.Get($"DataService_Sql_Password_{target.Username.ToLowerInvariant()}") }.ConnectionString; sqlMigration = new SqlMigration(sqlConnectionString); keyValuePairExtractor = new KeyValuePairExtractor(); }