我总是在使用数据库(强类型或其他方式)从数据库中使用Get时,我从来没有真正需要使用Fill,尽管我在拔出和更新数据时也很容易使用Fill而不是get。 / p>
任何人都可以就每种方法的含义和陷阱提供指导吗?
在什么情况下最好使用其中一种?
任何性能影响?
提前感谢您的答案!我爱这个社区!
答案 0 :(得分:4)
使用Fill可以很好地调试异常,因为可以查询传递给方法的DataTable以获取更多详细信息。在同样的情况下,Get不会返回。
提示:
答案 1 :(得分:3)
答案 2 :(得分:3)
Fill的特定问题,如果表已经包含数据,那么当例如查询返回主键已经在表中的行时,您可以获得唯一的索引异常。
我使用了大量数据绑定的Windows窗体代码,其中编辑控件或窗体上的网格绑定到表,然后使用Fill将更多行从数据库加载到表中。这可能会导致一些有趣的事件触发序列和经验中的间歇性错误。
使用Get来检索具有新结果的新表,然后将表单重新绑定到新表可以避免这种情况。
我怀疑两者之间的性能差异很大,除非在具有现有行的表上使用Fill。在这种情况下,将忽略表的BeginLoadData方法,该方法通常会延迟事件触发和索引重建直到结束。
答案 3 :(得分:1)
唯一的区别是GetData为您实例化一个表,Fill将填充一个现有的表。
这取决于您是否需要实例化DataTable。我经常在填充已经实例化的DataSet的某个表成员时使用Fill。