有人可以告诉我为什么我会在数据集设计器中使用查询适配器而不是向表适配器添加查询吗?
此致
答案 0 :(得分:5)
有时您的查询不需要与实际的DataTable相关联。也许您有一个在DataSet中逻辑分组的Query,但没有真正的后备存储。
对于Instance,假设您想调用一个存储过程来安全删除给定客户的所有相关记录:
proc_DeleteAllAssociatedCustomerRecords
这实际上不属于任何一个特定实体,因为它可能跨越多个表,但仍属于您的CustomerDataSet。
答案 1 :(得分:1)
除了Josh的回答之外,我还要补充说,当你的select模式与表的其余部分有不同的模式时,它会很有用。假设你想要id&表格中的下拉名称,该表格包含很多字段。
答案 2 :(得分:1)
与标准数据适配器不同,TableAdapter可以包含多个查询来填充其关联的数据表。您可以根据应用程序的需要为TableAdapter定义任意数量的查询,只要每个查询返回的数据符合与其关联数据表相同的模式即可。这使得能够加载满足不同标准的数据。
除了返回与TableAdapter的数据表相同的模式的数据的查询之外,您还可以添加返回标量(单个)值的查询。例如,创建一个返回客户数量的查询(来自Customers的SELECT Count(*))对于CustomersTableAdapter是有效的,即使返回的数据不符合表的模式。
http://msdn.microsoft.com/en-us/library/bz9tthwx(VS.80).aspx