The in-form Alex striker, who had scored in his three previous games, crashed Crewe’s best chance against the crossbar as The Railwaymen extended their unbeaten run to four games.
The visitors had two good chances to take an early lead. Ashley Westwood blocked Jamie Clarke’s close-range effort, then Alex keeper Steve Phillips flapped at Cian Hughton’s corner but Chris Herd directed his header wide of the unguarded net.
Westwood went close with a series of free-kicks for Crewe and Donaldson smacked their best first-half effort off the crossbar after a neat interchange with John Brayford.
Philips was almost caught off his line when Simon Walton’s clearance hit Clarke and ballooned inches over the Alex crossbar.
Joel Grant dragged his shot across goal and Calvin Zola flashed a header wide as Crewe looked for a winner. But Eric Lichaj could have won it for the Imps, only for Philips to tip the winger’s shot to safety.