我目前正致力于项目,其主要任务是读取存储在SQL数据库中的数据并以用户友好的形式显示它们。使用的编程语言是C ++。我在Borland C ++ Builder 6环境中工作。但我认为标题中提出的问题与编程语言或库无关。从db读取数据时,我经常在类名中遇到这些术语而不确切知道它们代表什么。我知道它们表现为存储在db中的数据的接口。但为什么需要使用两个接口类而不是一个?
答案 0 :(得分:5)
DataSource
=如何连接到数据库
DataSet
=内存中数据库的结构
更多细节(来自考试70-516:TS:使用Microsoft .NET Framework 4访问数据):
DataSource这是您为其分配数据的主要属性。您可以 分配任何实现IList,IListSource,IBindingList或IBindingListView的东西 接口。可以分配给DataSource属性的项的一些示例是 数组(IList),列表(IList),数据表(IListSource)和数据集(IListSource)。
DataSet是基于内存的表格式关系数据表示,是主要的断开连接的数据对象。从概念上讲,将DataSet视为内存中的关系数据库,但它只是缓存数据,并不提供对当今关系数据库至关重要的任何事务属性(原子性,一致性,隔离性,持久性)。 DataSet包含DataTable和DataRelation对象的集合
答案 1 :(得分:2)
假设您正在谈论.NET生态系统,这两个术语意味着截然不同的事情。
DataSet
是表示进程内存(即数据库外部)中的关系数据的类 - 通常从数据库填充。它表示它们之间的表和关系(比如外键约束)。
DataSource
是data binding中的一个属性 - 将对象分配给DataSource
属性上的控件将数据源(例如DataSet
)绑定到控件。