今天商业集团项目的消息系统又出问题了,通过分析判断是从ADODB._Recordset接口中获取数据时出现了错误。当试图直接从Recordset接口中获取字段值的时候,比如:id = rs.Field[”id”].Value.ToString(),将抛出一个NullReferenceException,提示引用为空。而且只有在商业集团和新疆油建的项目中才出现过这种错误,其中,新疆邮件通过重新安装windows解决了这个问题,但是显然不是好的解决方法。这个问题的原因还没有找到,初步判定是MDAC版本升级后产生的。
目前所能想到的较好的解决方法是:将Recordset接口中的值填充到DataSet中去,比如:
Adapter.Fill(ds,rs,”Message”); 其中Adapter为OleDbDataAdapter。
这样就能够正确读取数据了。
以后应该特别注意,不能再直接使用古老的Recordset操作数据了,并且最好将直接的数据库操作都放入COM+中去。
目前所能想到的较好的解决方法是:将Recordset接口中的值填充到DataSet中去,比如:
Adapter.Fill(ds,rs,”Message”); 其中Adapter为OleDbDataAdapter。
这样就能够正确读取数据了。
以后应该特别注意,不能再直接使用古老的Recordset操作数据了,并且最好将直接的数据库操作都放入COM+中去。