DLL:Oracle.DataAccess.Client; 4.121.1.0
在做新增資料時,插入一個常數整數變數,就出錯在那一行
private const int _DEFAULT_VALUE = 0;
OracleCommand oc = new OracleCommand();
oc.CommandText = "insert into Table1 (col1) values(:val1)";
oc.Parameters.Add("val1", _DEFAULT_VALUE);--這行出錯
得到ArgumentOutOfRangeException
Google找到一篇文章
http://brianseekford.com/wordpress/?p=100
說在插入0的時候也出錯了
有個解決辦法是這樣
oc.Parameters.Add("val1", (object)_DEFAULT_VALUE);
把變數轉型為object,結果就過了!
我想應該是驅動程式的BUG
20170510補記
自己又遇到同樣問題 狗回來這一篇
不過有新解法
oc.Parameters.Add(new OracleParameter(){
ParameterName=":FLAG",
Value=(short)0,
OracleDbType=OracleDbType.Int16
});
這樣的方式也是OK