The ! turns up when iPhoto loses the connection between the thumbnail in the iPhoto Window and the file it represents.
What version of iPhoto? Assuming 09 or later:
Back Up and try rebuild the library: hold down the command and option (or alt) keys while launching iPhoto. Use the resulting dialogue to rebuild. Choose to Rebuild iPhoto Library Database from automatic backup.
If that fails:
Download iPhoto Library Manager and use its rebuild function. This will create a new library based on data in the albumdata.xml file. Not everything will be brought over - no slideshows, books or calendars, for instance - but it should get all your albums and keywords back.
Because this process creates an entirely new library and leaves your old one untouched, it is non-destructive, and if you're not happy with the results you can simply return to your old one. .
I have tried to rebuild library using iphoto and I downloaded iphoto library manager. I can still the photo as a thumbnail but get the exclamation point when I click on the photo. I have deleted the photos from the sd card but haven't used the sd card again. The pictures should still be on the sd card right? If thats the case is there a program that can extract the photos from the card to try to download again?