Try the built-in iPhoto maintenance:
Launch iPhoto while holding Option and Command. You'll see a window with a variety of choices. I would do each choice in the list, particularly the Repair Database.
If you have a lot of pictures, >10,000 or more, then that repair or rebuild can take quite a long time. (possibly several hours if you have never tried those maintenance options).