>>>It doesn't work because the compiler knows that when you add 2 shorts together you could overflow (so it needs an int/Int32 to store the result). It wants you to specifically cast the result of the addition to a (short) before it gets assigned to newSuffix so it knows that you understand the consequences that you could possibly lose data. If you want it as one line:
>>>
>>>
>>>newSuffix = Convert.ToInt16(lastLocSuffix) + 1;
>>>
>>
>>Thanks, Paul. I think I tried that version already and got the same problem. Two lines assignment works.
>
>Doh! Yeah, I messed that up when I tested it. I set newSuffix as an int, not a short. BTW - you never actually said what type lastLocSuffix was.
In the database the column is smallint and defined as short in the class definition.
Anyway, this now works fine, thanks again to both of you:
var lastLocSuffix = _salespointAdapter.GetAll().Max(sp=>sp.LocSuffix);
Int16 newSuffix = 1;
if (lastLocSuffix != null)
{
newSuffix = Convert.ToInt16(lastLocSuffix);
newSuffix++;
}
salespoint.LocSuffix = newSuffix;
If it's not broken, fix it until it is.
My Blog