Somewhere your program is attempting to convert it to a numeric by using
type.Parse("1999/2000") where type is int|float|decimal|whatever numeric
type.
This will obviously fail as 1999/2000 is not a valid number.
You need to convert the 1999 and 2000 to a numeric value individually
and then do the division.
BTW, it cannot be defined as numeric in the database if that is what you
are getting (unless its a db I havent come across that supports
arithmetic operations as db types, and in that case its not a numeric
type anyway)
Exactly. The db will almost certainly have it as a string, even though
the value in the field is always evaluatable to a number.
People may think that this is a silly thing to want to do, but I
remember being involved in a work-study application some years ago, in
which fields contained things such as "4/7", which stood for "four
days out of seven", and had to be kept in that format rather than the
numerically accurate 0.5714 etc, because it might also contain "8/14"
meaning 8 days per fortnight, which is different although numerically
the same. Such fields were obviously kept as strings and passed
through an evaluator every time they were used. In good old ancient
antique BASIC, this would have been merely EVAL("4/7") or
EVAL("1999/2000"), but in C++ I had to write an entire evaluator to
deal with it.