首页 新闻 搜索 专区 学院

Oracle.ManagedDataAccess 中 OracleDataAdapter.Update问题

0
悬赏园豆:100 [已解决问题] 解决于 2014-01-14 10:26

Oracle表中,如果某列不可为空,但是有默认值。

譬如 Fld1  Varchar2(1) default '*' not null。

当客户端Fld1字段不赋值时,

用System.Data.OracleClient的OracleDataAdapter.Update没问题,并且插入了默认值"*"

当换成Oracle.ManagedDataAccess时候,就会报错。提示不能插入NULL。

恳请大侠们指教!

并且OracleDataAdapter.GetSchemaTable()方法,貌似也取不出字段默认值来。

古秋的主页 古秋 | 初学一级 | 园豆:114
提问于:2013-12-26 10:32
< >
分享
最佳答案
0

一般,我在实际开发中,根据表结构生成实体类时,就会根据默认值生成类似

 

private String _fld1 = "*";

public String Fld1{

  set{ value = _fld1;}

  get {return _fld1;}

}

的代码,所以后续Insert或Update时,new()出来的实例,这个字段已经有默认值了,不会出现insert/update时,出现null的情况

收获园豆:100
菩提树下的杨过 | 小虾三级 |园豆:554 | 2013-12-26 21:31
其他回答(2)
0

最后,通过修改mono的oraclecommandbuilder类解决了。

古秋 | 园豆:114 (初学一级) | 2014-01-14 10:26
0

https://q.cnblogs.com/q/86398/  遇到过吗

悠悠木子李 | 园豆:248 (菜鸟二级) | 2016-09-21 09:10
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册