Mat*_*ino 12 .net database ado.net dataset strong-typing
我总是使用Get从数据库处理数据(强类型或其他),我从来没有真正需要使用Fill,虽然我很容易使用Fill而不是在拔出和更新数据时获取.
任何人都可以提供有关每种方法的含义和陷阱的指导吗?
在什么情况下最好使用一个或另一个?
任何性能影响?
在此先感谢您的答案!我爱这个社区!
如果表已包含数据,Fill 的一个特殊问题是,例如,当查询返回主键已在表中的行时,您可能会遇到唯一索引异常。
我使用过许多数据绑定的 Windows 窗体代码,其中窗体上的编辑控件或网格绑定到表,然后使用 Fill 将更多行从数据库加载到表中。根据经验,这可能会导致一些有趣的事件触发序列和间歇性错误。
使用 Get 检索包含新结果的新表,然后将表单重新绑定到新表可以避免此类情况。
我怀疑两者之间存在很大的性能差异,除非在包含现有行的表上使用 Fill。在这种情况下,表的 BeginLoadData 方法将被忽略,这通常会延迟事件触发和索引重建直到结束。