使用SQL Server DataAdapter了解DataTable以获得最佳速度

时间:2009-04-06 12:40:12

标签: .net sql-server

我一直在想这个,并不能真正找到一个直接的答案。在.NET中,当您使用SQL Server数据适配器从数据库中填充数据行时,它是否真正加载到内存中,然后在某些方面,当您访问它时,它是否还是从数据库中读取数据?

3 个答案:

答案 0 :(得分:1)

填写DataTable后,您可以关闭连接。填充后不再需要访问数据库。 DataReader在使用时需要打开连接。

答案 1 :(得分:1)

是的,当适配器填充DataTable时,所有数据都从数据库读入内存并存储在DataTable中。不需要持久连接。显然,如果要刷新DataTable中的数据或保存对数据库的更改,则需要连接,但不需要保持连接打开以便使用DataTable中的数据。

答案 2 :(得分:1)

.NET DataSet(并通过转移,DataTable)是“存储在数据库中的数据的断开内存表示”,如果我完全记得我的教科书定义。

这个定义是不言自明的,但要澄清......一旦你在DataAdapter上调用Fill(),它确实会将数据加载到内存中。在明确调用Update(), Delete() or Insert()等其他方法之前,不需要再次访问数据库。

DataAdapter还隐式管理连接本身。如果数据库已关闭,它会在访问数据库之前打开连接,并在作业完成后自动关闭它。