2009-06-05 61 views

回答

5

有時您的查詢不需要與實際的DataTable關聯。也許你有一個在你的DataSet中邏輯分組的查詢,但沒有真正的後備存儲。

例如,假設你想叫一個存儲過程,安全地刪除所有相關的記錄給定客戶:

proc_DeleteAllAssociatedCustomerRecords

這確實不屬於任何一個特定的實體因爲它可能跨越多個表,但仍屬於您的CustomerDataSet。

1

除了Josh的回答,我還會補充一點,如果您選擇的查詢具有與表的其餘部分不同的架構,那麼它很有用。假設你只想從一個表格的下拉列表中選擇名稱&,並且該表格有很多字段。

1

與標準數據適配器不同,TableAdapter可以包含多個查詢以填充其關聯的數據表。只要每個查詢返回的數據符合與其關聯的數據表相同的模式,就可以爲應用程序所需的TableAdapter定義多個查詢。這樣可以加載滿足不同標準的數據。

除了返回與TableAdapter的數據表相同模式的數據的查詢外,還可以添加返回標量(單個)值的查詢。例如,即使返回的數據不符合表的模式,創建一個返回客戶數的查詢(來自Customers的SELECT Count(*))也適用於CustomersTableAdapter。

http://msdn.microsoft.com/en-us/library/bz9tthwx(VS.80).aspx