Stop using
Convert
methods to change between datatypes: particularly when you are converting from strings to numbers you need to use
TryParse
instead. Convert methods throw an exception when they fail, where TryParse returns a value which allows you to report problems instead of your app (and website) failing.
string score = Request.QueryString["Score"];
Label1.Text = score;
int value;
if (!int32.TryParse(score, out value))
{
...
return;
}
But the reason why it's failing is very likely to be in the code which directed you to this page: use the if above to show you what exactly the query string contains, and then look at what it should be - since you are generating the query string, you are probably doing something very, very wrong there.
As a side note: if you don't want users to progress until they have a sufficient score, then you need to look at using Cookies or the Session object instead of query strings. Otherwise I can progress immediately just by editing the query string in the URL at the top of my browser and pressing ENTER...