There are a couple of things here: there is the fbalance problem mentioned by Tomas Takac in the comments above, the spelling of "wheere", and the use of concatenation.
Do not concatenate strings to build a SQL command. It leaves you wide open to accidental or deliberate SQL Injection attack which can destroy your entire database. Use Parametrized queries instead. This is a safe use, but if you are doing it here, the chances are you do it elsewhere and leave your database wide open to attack.
Try this:
cmd.CommandText = "SELECT facno, MAX(fdate) AS fdate, SUM(fbalance) AS totalfbalance FROM MainTran WHERE fdate<=@DT GROUP BY facno"
cmd.Parameters.AddWithValue("@DT", prdate.Date)