You have to add following after ExecuteReader():
while(DR1.Read())
{
lblfrmdt.Text += DR1[0].ToString();
}
while(DR2.Read())
{
lbltodt.Text += DR2[0].ToString();
}
Then,
DR1.Close(); DR2.Close(); con.Close();
DataReader needs to call Read() function first so that, it can iterate through the Rows returned by ExecuteReader().
DataReader retrieves data row by row as Read() is called.
First call to Read() gets the First row returned. And so on...
So, we use while() condition so that data is retrieved as long as Read() is true and some data is present in DataReader.
And you're done!