Oracle表中,如果某列不可为空,但是有默认值。
譬如 Fld1 Varchar2(1) default '*' not null。
当客户端Fld1字段不赋值时,
用System.Data.OracleClient的OracleDataAdapter.Update没问题,并且插入了默认值"*"
当换成Oracle.ManagedDataAccess时候,就会报错。提示不能插入NULL。
恳请大侠们指教!
并且OracleDataAdapter.GetSchemaTable()方法,貌似也取不出字段默认值来。
一般,我在实际开发中,根据表结构生成实体类时,就会根据默认值生成类似
private String _fld1 = "*";
public String Fld1{
set{ value = _fld1;}
get {return _fld1;}
}
的代码,所以后续Insert或Update时,new()出来的实例,这个字段已经有默认值了,不会出现insert/update时,出现null的情况
最后,通过修改mono的oraclecommandbuilder类解决了。
https://q.cnblogs.com/q/86398/ 遇到过吗