Weird case.
setSearchKey();
if (Searchkey != null)
{
CreateResultTable();
}
else
{
notifylabel.Text = "Please provide a keyword for searching!";
}
In Page_Load method, you are processing the search through CreateResultTable method on the basis of Searchkey object.
You initialized Searchkey in the beginning with acc. In case, setSearchKey fails, you will continue to have acc; otherwise non null values from QueryString.
Either case, you should have non null values in Searchkey. Unfortunately, program execution fails the below condition
if (Searchkey != null)
and moving to notifyLabel.
One solution would be moving Searchkey into public property with auto getter and setter as:
public String Searchkey {get;set;}