Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Datatable vs Dataset

People also ask

What is difference between DataTable and DataSet?

A DataTable object represents tabular data as an in-memory, tabular cache of rows, columns, and constraints. The DataSet consists of a collection of DataTable objects that you can relate to each other with DataRelation objects.

Which is better DataSet or DataTable?

There is no much difference between dataset and datatable, dataset is simply the collection of datatables.

What is the difference between DataTable and DataSet in VB net?

DataTable represents a single table in the database. It has rows and columns. There is no much difference between dataset and datatable, Dataset is simply the collection of datatables.

What is the difference between dataview and DataTable?

Dataview is used to filter or sort records in a data table. Datatable is a result set or collection of records in tabular format.


It really depends on the sort of data you're bringing back. Since a DataSet is (in effect) just a collection of DataTable objects, you can return multiple distinct sets of data into a single, and therefore more manageable, object.

Performance-wise, you're more likely to get inefficiency from unoptimized queries than from the "wrong" choice of .NET construct. At least, that's been my experience.


One major difference is that DataSets can hold multiple tables and you can define relationships between those tables.

If you are only returning a single result set though I would think a DataTable would be more optimized. I would think there has to be some overhead (granted small) to offer the functionality a DataSet does and keep track of multiple DataTables.


in 1.x there used to be things DataTables couldn't do which DataSets could (don't remember exactly what). All that was changed in 2.x. My guess is that's why a lot of examples still use DataSets. DataTables should be quicker as they are more lightweight. If you're only pulling a single resultset, its your best choice between the two.


One feature of the DataSet is that if you can call multiple select statements in your stored procedures, the DataSet will have one DataTable for each.


There are some optimizations you can use when filling a DataTable, such as calling BeginLoadData(), inserting the data, then calling EndLoadData(). This turns off some internal behavior within the DataTable, such as index maintenance, etc. See this article for further details.


When you are only dealing with a single table anyway, the biggest practical difference I have found is that DataSet has a "HasChanges" method but DataTable does not. Both have a "GetChanges" however, so you can use that and test for null.