This might not be the best way to do it but you could have a seperate function that runs the same query and just returns a row count and then you pass that row count as you progressBar maxvalue.After that step you parse the sqlreader to your class and iterate through the rows while incrementing your progressbar value.
How large is the query that you are running ? WHy not just fill a table using a dataAdapter that will go one shot and should be fast enough that you don't even need a progressBar ?
As stated above...I know this is not the best solution but it should work fine.
Kind Regards.