Prevent from switching Wi-Fi networks
You could use a script to check the RSSI value of the currently connected SSID.  If it is above a certain threshold, than change to other SSID with lower RSSI.  This could be run manually or paired with a Launch Daemon that is triggered by network change.  

In the below script you would just have to change en1 to your wifi interface.  Also set your desired threshold for the RSSI value.  In the below script I set it for 65.  The first time it runs it will prompt for a password to allow netowrksetup to access the system.  Otherwise run it as root.

If you create a Launch Daemon I would monitor these three files:

/etc/resolv.conf

/Library/Preferences/SystemConfiguration/NetworkInterfaces.plist

/Library/Preferences/SystemConfiguration/com.apple.airport.preferences.plist

Script to change SSID if RSSI value is to high.

#!/bin/bash

##Check signal strength of wifi and change if over a certain RSSI threshold.

##Get RSSI strength of WIFI and strip off the - charecter
signalStrength=`/System/Library/PrivateFrameworks/Apple80211.framework/Versions/Current/Resources/airport -I | grep CtlRSSI | awk '{print $2}' | sed 's/^[-]*//'`

##Grab current connected WIFI SSID
wifiID=`networksetup -getairportnetwork en1 | cut -d ":" -f2 | sed 's/^[ t]*//'`

if [[ "$signalStrength" &gt; 65 &amp;&amp; "$wifiID" = "Upstairs" ]]; then
    networksetup -setairportnetwork en1 "Downstairs" [password]
    echo "Changing to Downstairs wireless, RSSI signal out of threshold"
elif [[ "$signalStrength" &gt; 65 &amp;&amp; "$wifiID" = "Downstairs" ]]; then
    networksetup -setairportnetwork en1 "Upstairs" [password]
    echo "Changing to Upstairs wireless, RSSI signal out of threshold"
fi