Tập dữ liệu thường được sử dụng để giữ kết quả từ cơ sở dữ liệu trong bộ nhớ, tức là nó chứa đối tượng DataTable. Các đối tượng DataSet và DataTable chúng là độc lập với cơ sở dữ liệu, do đó kết quả không phải đến từ một cơ sở dữ liệu. Số liệu có thể chứa một số DataTables, và bạn thậm chí có thể xác định mối quan hệ giữa chúng. Nó giống như một cơ sở dữ liệu nhỏ trong bộ nhớ.
Nguồn ràng buộc là bất kỳ đối tượng nào có thể cung cấp danh sách đối tượng có thuộc tính. Một DataSet hoặc một DataTable có thể làm điều đó, nhưng về cơ bản nó có thể là bất kỳ loại danh sách nào chứa các đối tượng có các thuộc tính.
Một TableAdapter được sử dụng để đọc dữ liệu từ một DataReader được cung cấp bởi một đối tượng Command, và đưa dữ liệu vào một đối tượng DataTable.