Donaldson’s thunderous 58th-minute volley at the County Ground was enough to separate the sides as Paolo di Canio’s Town team slumped to their fifth home defeat of the season.
The former Crewe striker could have netted as early as the 12th minute but for a smart save from home goalkeeper Wes Foderingham to push wide his well-hit drive.
At the other end, Bees keeper Simon Moore produced a superb 41st-minute stop to keep out debutant Chris Martin’s piledriver.
Swindon began the second half brightly and almost took the lead when Gary Roberts fizzed a dangerous centre across the six-yard box but none of his team-mates could get a crucial touch.
Simon Ferry also glanced a header wide before new boy Martin nodded narrowly wide after latching onto Matt Ritchie’s cross two minutes from time.