在用下面的语句更新数据库的时候
OracleDataAdapter adaper = new OracleDataAdapter(sql, conn);
OracleCommandBuilder builder = new OracleCommandBuilder(adaper);
return adaper.Update(table);
第一次正常,第二次使用就会报错,就是因为builder在生成的updateCommand的时候对,其它字段也进行了判断,而其它字段中的值有可能和数据库中保存的不一致,特备是字符串空值(""),在数据库中就是null(数据库是oracle),不知道大家有没有碰到过这种问题,怎么解决的
我想问下能不能让commandBuilder生成updatecommand的时候只对主键进行判断,而不判断其它字段?
OracleDataAdapter adaper = new OracleDataAdapter(sql, conn);
OracleCommandBuilder builder = new OracleCommandBuilder(adaper);
return adaper.Update(table);
第一次正常,第二次使用就会报错,就是因为builder在生成的updateCommand的时候对,其它字段也进行了判断,而其它字段中的值有可能和数据库中保存的不一致,特备是字符串空值(""),在数据库中就是null(数据库是oracle),不知道大家有没有碰到过这种问题,怎么解决的
我想问下能不能让commandBuilder生成updatecommand的时候只对主键进行判断,而不判断其它字段?
在网上看到的解释是,在没有update之前 已经对数据进行了更改,也就是说,你先把结果集 取到了,然后 通过别的方法 又对数据进行了更改,结果在update的时候就会报错