public static string GetDatabaseName(this IDbConnection connection) { var connectionStringBuilder = new SqlConnectionStringBuilder(connection.ConnectionString); if (!string.IsNullOrEmpty(connectionStringBuilder.InitialCatalog)) { return(connectionStringBuilder.InitialCatalog); } if (!string.IsNullOrEmpty(connectionStringBuilder.AttachDBFilename)) { return(connectionStringBuilder.AttachDBFilename); } return(null); }
public static void DropDatabase(this IDbConnection connection) { var databaseName = GetDatabaseName(connection); var str = $@"USE master; ALTER DATABASE [{databaseName}] SET SINGLE_USER WITH ROLLBACK IMMEDIATE; DROP DATABASE [{databaseName}];"; try { using (DbCommand command = new SqlConnection(connection.ConnectionString).CreateCommand()) { command.CommandText = str; command.CommandType = CommandType.Text; command.Connection.Open(); command.ExecuteNonQuery(); command.Connection.Close(); } } catch (Exception ex) { Console.WriteLine(ex); } }