2017-04-07 31 views
0

我創造了我的表,我的一個欄區的編號爲(5),數(5)在甲骨文又是什麼意思在C#

PROJECT_CODE NUMBER(5) NOT NULL , 

當我entegred它在我的模型在C#中是看喜歡;

public global::System.Int16 PROJECT_CODE 

我的問題是,爲什麼越來越來的Int16因爲INT16意味着短期和最大值爲「32767」如果我的價值將是32768 oracle會好起來的,但怎麼樣的C#?

+2

那麼爲什麼不改爲'NUMBER(6)'或者根本不指定長度? –

+0

對不起,但我不是問我爲什麼c#顯示數字(5)Int16爲什麼它不顯示Int32 – Ilaria

+1

Oracle'Number(5)'是* BCD *和'-99999之間沒有直接對應關係。 99999'範圍和Net *整數值*:'Int16'具有'-32768..32767'或'Int32'具有'-2147483648..2147483647'。一些妥協是不可避免的。 –

回答

1

因爲odpnet有一個通知這種事實狀態的規範。

oracle datatype mapping for .net

在執行代碼,你可以有一個問題,如果你手工設置的值與不正確的範圍內。我建議使用相同的應用程序來設置值,以保證過程。