Don't just pass user inputs to SQL and let it sort it out: check and convert user inputs to appropriate datatypes before you start with the DB stuff, and report problems direct to the user.
Dim fromDate As DateTime
If Not DateTime.TryParseExact(txtFromDate.Text.Trim(), "d/M/yyyy", CultureInfo.InvariantCulture, fromDate) Then
... Report problem to user ...
Return
End If
...
Dim unitUsage As Decimal
If Not Decimal.TryParse(txtUsage.Text.Trim(), uintUsage) Then
... Report problem to user ...
Return
End If
...
cmd.Parameters.AddWithValue("@FRMDT", fromDate)
cmd.Parameters.AddWithValue("@TODT", toDate)
cmd.Parameters.AddWithValue("@UNIT_USAGE", unitUsage)
That way, the user gets a better error massage than your app crashing, and you get more robust code that is a lot easier to read.