This code should work, but I haven't tried it with 20 fields.
B4X:
s = "UPDATE Fares SET FareDate=" & FareDate & ",FareHash='" & tFareHash.Text & "' WHERE TableID=" & lTableID.Text
mySQL.ExecNonQuery(s)
If the fields are text fields the values must be between quotes. You can add the other fields in the string.
The method is ExecNonQuery and not ExecuteNonQuery.
If the string is too long, you could update it with two queries.
@Smee
You can update more than one field, see here.
I recommend you to use ExecNonQuery2. It is simpler and safer (no issues with string escaping):
B4X:
Dim s As String
s = "UPDATE Fares SET FareDate = ?, FareHash = ?, WHERE TableID = ?"
SQL.ExecNonQuery(s, Array As Object(FareDate, tFareHash.Text, lTableID.Text))