我知道可能有一个明显的原因,但我找不到它..
我通常在数据库连接和数据读取过程中使用 using
语句,但是我不能在 DataAdapter
上使用它,因为它没有实现 IDisposable
。
另外:填充数据集后它会如何表现?
它会关闭自己的连接吗?
只关闭它或处理它?
填完数据集后需要自己处理内部连接吗?如果是这样,为什么 IDataAdapter
没有相关的属性/方法?
最佳答案
DataAdapter 没有实现 IDisposable,因为它没有任何需要在正常垃圾收集之外处理的成员变量。换句话说,它不需要实现 IDisposable。
如果您有兴趣,可以在此处查看 Mono DataAdapter 的源代码:http://www.java2v.com/Open-Source/CSharp/2.6.4-mono-.net-core/System.Data/System/Data/Common/DataAdapter.cs.htm
通常,如果您要在使用后关闭连接,请继续将连接放入 using 范围,但也可以使用单例并在使用相同连接的多范围内拥有多数据适配器。
希望这是有道理的。
关于c# - 为什么 DataAdapter 不是一次性的,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/13629359/