Instead of
use something like:
strX = strRead.ReadToEnd()
strX = strx.Replace("$name", dt.Rows(0)("name"))
strX = strx.Replace("$lastname", dt.Rows(0)("lastname"))
strX = strx.Replace("$dob", dt.Rows(0)("dob"))
Another one possibility (if text is very long for example) is to read it line-by-line like this:
Dim line As String = Nothing
Do Until strRead.Peek = -1
line = reader.ReadLine()