 According to the U.S. Census Bureau, the county has a total area of , of which is land and (0.8%) is water.It is bordered on the north by the James River and on the south by the Appomattox River.As of the census of 2000, there were 22,377 people, 7,258 households, and 5,900 families residing in the county.