It's a little obvious: Your first time round the the loop or your second will always go to Response .Redirect - because the first time you find a table that isn't called what you are looking for, it will redirect. So if the first table name matches, then you will set the label text, then continue round the loop. On the second time round the loop, the table name will not match (because it did the first time) so it will Redirect.
If the first one doesn't match, then it will redirect immediately.
You need to change it so that you set a variable to "doesn't match" and set it to "match" when you find the table name in teh array. You tehn check the variable after the loop and decide what to do.
In addition:
1) You don't need to check
if (condition)
...
else if (!condition)
...
Because the
else
already covers the !condition part.
2) You shouldn't use Array, or var so liberally - use List<T> or IEnummerable<T> instead. It will make you code much more readable.
3) You don't need to do that at all! Just include a WHERE clause in your SELECT statement to return only tables with the name you are looking for...