Разница между DataSource и DataSet - PullRequest
6 голосов
/ 17 февраля 2012

В настоящее время я работаю над проектом, основной задачей которого является чтение данных, хранящихся в базе данных SQL, и отображение их в удобной для пользователя форме.Используемый язык программирования - C ++.Я работаю в среде Borland C ++ Builder 6.Но я думаю, что вопрос, поставленный в заголовке, не зависит от языка программирования или библиотек.При чтении данных из базы данных я довольно часто встречаюсь с этими терминами в именах классов, не зная точно, что они представляют.Я понимаю, что они ведут себя как интерфейс для данных, хранящихся в БД.Но почему нужно использовать два класса интерфейса вместо одного?

Ответы [ 2 ]

5 голосов
/ 17 февраля 2012

DataSource = Как вы подключаетесь к базе данных DataSet = Структура базы данных в памяти

Подробнее (из экзамена 70-516: TS: доступ к данным с помощью Microsoft .NET Framework 4book):

DataSource Это основное свойство, которому вы назначаете свои данные.Вы можете назначить все, что реализует интерфейс IList, IListSource, IBindingList или IBindingListView.Некоторыми примерами элементов, которые могут быть назначены свойству DataSource, являются массивы (IList), списки (IList), таблицы данных (IListSource) и наборы данных (IListSource).

DataSet представляет собой табличную таблицу на основе памяти, реляционное представление данных и является основным отключенным объектом данных.Концептуально, думайте о DataSet как о реляционной базе данных в памяти, но это просто кэшированные данные и не предоставляет никаких транзакционных свойств (атомарность, согласованность, изоляция, долговечность), которые необходимы для современных реляционных баз данных.DataSet содержит коллекцию объектов DataTable и DataRelation

2 голосов
/ 17 февраля 2012

Предполагая, что вы говорите об экосистеме .NET, эти два термина означают совершенно разные вещи.

A DataSet - это класс, представляющий реляционные данные в памяти процесса (то есть вне базы данных), обычно заполняемый из базы данных. Он представляет таблицы и отношения между ними (скажем, ограничения внешнего ключа).

DataSource - это атрибут в привязке данных - назначение объекта элементу управления в свойстве DataSource связывает источник данных (например, DataSet) с элементом управления.

...