I wouldn't worry about accurate progress for this. If it's worth displaying a progress bar at all, I would suggest just setting Style to Marquee so that the user sees that something is happening. By calculating and displaying accurate progress you will actually be slowing the whole thing down. Just populate a DataTable and save the lot in a single batch using a DataAdapter, which supports inline SQL or sprocs.