Я думаю, вы делаете это слишком рано. Попробуйте установить источник данных после того, как вы заполнили booksDataset1.Books. Вы связываетесь до того, как данные становятся доступны, и я не знаю, что это происходит, когда происходит событие изменения, которое заставит его обновиться.
Кроме того, вы можете вызвать yourDataGridview.Refresh (), чтобы вызвать проблему, если источник данных уже установлен.