public bool ExistsDatabase(IAnyDbSetting setting) { if (setting == null) { throw new ArgumentNullException(nameof(setting)); } CheckDatabseProvider(setting); string original = setting.ConnectionString; try { AnyDbConnectionStringBuilder sb = new AnyDbConnectionStringBuilder(setting.ConnectionString); string dbName = (string)sb["Database"]; sb["Database"] = "postgres"; setting.ConnectionString = sb.ToString(); AnyDbFactory factory = new AnyDbFactory(setting); using (AnyDbConnection con = factory.OpenConnection()) using (AnyDbCommand cmd = con.CreateCommand()) { cmd.CommandText = $"SELECT count(datname) from pg_database WHERE datname='{dbName}'"; return(Convert.ToInt32(cmd.ExecuteScalar()) > 0); } } finally { setting.ConnectionString = original; } }
public bool ExistsDatabase(IAnyDbSetting setting) { if (setting == null) { throw new ArgumentNullException(nameof(setting)); } CheckDatabseProvider(setting); string original = setting.ConnectionString; try { AnyDbConnectionStringBuilder sb = new AnyDbConnectionStringBuilder(setting.ConnectionString); string dbName = (string)sb["InitialCatalog"]; sb["InitialCatalog"] = "master"; setting.ConnectionString = sb.ToString(); AnyDbFactory factory = new AnyDbFactory(setting); using (AnyDbConnection con = factory.OpenConnection()) using (AnyDbCommand cmd = con.CreateCommand()) { cmd.CommandText = $"select isnull(DB_ID(N'{dbName}'), -1)"; return(Convert.ToInt32(cmd.ExecuteScalar()) > -1); } } finally { setting.ConnectionString = original; } }