Correct using of try/catch clause on database execution
Some quick remarks:


Avoid writing ADO.NET code by hand; instead use an ORM like Dapper.
Why not use MAX() -- which I think is supported by PostgreSQL -- instead of ORDER BY roundNumberId DESC LIMIT 1?


SELECT MAX(column_name)  
FROM table_name  
WHERE condition;  


Don't put business logic in exceptions. Instead, make this method int?
TryGetRoundNumberId() and let the calling code solve the issue when a null is returned. 

Or perhaps provide a default, e.g. int TryGetRoundNumberId(int defaultValue), so you'll get something along these lines:

using (var sqlConnection = new SqlConnection(_connectionString))
{
    sqlConnection.Open();

    using (var sqlCommand = new SqlCommand())
    {
        // snip parameters etc.

        var result = (int?)sqlCommand.ExecuteScalar();
        if (result.HasValue)
        {
            return result.Value;
        }
        else
        {
            return defaultValue;
        }
    }
}