共用方式為


LinqDataSource.Select 屬性

定義

取得或設定擷取數據中包含的屬性和計算值。

public:
 property System::String ^ Select { System::String ^ get(); void set(System::String ^ value); };
public string Select { get; set; }
member this.Select : string with get, set
Public Property Select As String

屬性值

用來建立 Select 子句的字串。

範例

下列範例示範如何將 Select 屬性設定為數據物件中屬性的子集。

<asp:LinqDataSource 
    ContextTypeName="ExampleDataContext" 
    TableName="Products" 
    Select="new(Name, Category, Price)"
    ID="LinqDataSource1" 
    runat="server">
</asp:LinqDataSource>
<asp:GridView 
    DataSourceID="LinqDataSource1"
    ID="GridView1" 
    runat="server">
</asp:GridView>
<asp:LinqDataSource 
    ContextTypeName="ExampleDataContext" 
    TableName="Products" 
    Select="new(Name, Category, Price)"
    ID="LinqDataSource1" 
    runat="server">
</asp:LinqDataSource>
<asp:GridView 
    DataSourceID="LinqDataSource1"
    ID="GridView1" 
    runat="server">
</asp:GridView>

下列範例示範如何擷取屬性中已用來分組數據的值,以及擷取群組記錄的平均值。 Key 關鍵詞包含已用於分組數據的屬性。 在此範例中,Key 會包含來自 ProductCategory 屬性的共用值。

<asp:LinqDataSource 
    ContextTypeName="ExampleDataContext" 
    TableName="Products" 
    GroupBy="Category"
    Select="new(Key as ProductCategory, 
            Average(Price) as AvePrice)"
    ID="LinqDataSource1" 
    runat="server">
</asp:LinqDataSource>
<asp:GridView 
    AllowPaging="true"
    DataSourceID="LinqDataSource1"
    ID="GridView1" 
    runat="server">
</asp:GridView>
<asp:LinqDataSource 
    ContextTypeName="ExampleDataContext" 
    TableName="Products" 
    GroupBy="Category"
    Select="new(Key as ProductCategory, 
            Average(Price) as AvePrice)"
    ID="LinqDataSource1" 
    runat="server">
</asp:LinqDataSource>
<asp:GridView 
    AllowPaging="true"
    DataSourceID="LinqDataSource1"
    ID="GridView1" 
    runat="server">
</asp:GridView>

備註

如果您沒有設定 Select 屬性,LinqDataSource 控件會從數據物件擷取所有屬性(數據行)。 您可以使用 Select 屬性,從物件擷取屬性的子集,或在擷取數據時計算新值。

您可以將 Select 屬性設定為您想要包含在傳回數據中的屬性名稱,以指定要擷取的屬性。

如果您從資料物件擷取屬性的子集,LinqDataSource 控件會動態建立只包含您在 Select 屬性中指定的屬性的類別。 如果您計算屬性不是數據物件中的屬性,也會動態建立類別。 在這些情況下,從查詢傳回的物件不是在 TableName 屬性中指定的類別實例。 相反地,您必須在 Select 屬性中使用 new 方法,以指出從查詢傳回新的類別。 例如,若要只從包含這些屬性的物件傳回 FirstNameLastName 屬性,請將 Select 屬性設定為 new(FirstName, LastName)LinqDataSource 控件會動態建立您在 new 方法中指定的新類別。

您可以使用 As 關鍵詞,將別名指派給選取的值。 如果您指派別名,則必須在 new 方法中包含別名屬性。 系結至 LinqDataSource 控件結果的任何數據綁定控件,都必須依別名參考 屬性。 例如,如果您將 Select 屬性設定為 new(Region As SalesRegion, Revenue / 1000 As RevenueThousands),則數據綁定控件可以存取兩個屬性,SalesRegionRevenueThousands

您會根據下表所列的條件,在 Select 屬性中使用 new 函式。

選擇 使用新的
Single 屬性。 不需要 new Select="Category"
多個屬性。 需要 new Select="new(Category, Name)"
具有別名的單一或多個屬性。 需要 new Select="new(Category As CategoryGroup)"

如果您想要啟用自動數據修改,但不想顯示資料物件中的所有屬性,請勿設定 Select 屬性。 相反地,請透過數據綁定控件管理顯示。 當您使用 DetailsView 控制件或 GridView 控制項時,也必須將 AutoGenerateRowsAutoGenerateColumns 屬性設定為 false。 未顯示在數據綁定控件中的任何值都會儲存在檢視狀態中。 執行數據更新時,它們會保持不變地傳遞至數據源。

當您在查詢中分組數據時,可以在 Select 屬性中包含匯總方法。 您可以使用下列匯總方法:

  • Count()

  • Average( 數據行)

  • Sum( 數據行)

  • Max( 數據行)

  • Min( 數據行)

  • Where( 條件)

  • Any()

  • All( 條件)

如需詳細資訊,請參閱 LinqDataSource Web 伺服器控制項概觀如何:使用 LinqDataSource 控制件群組和匯總資料

當您將數據分組時,可以在 Select 屬性中包含動態建立屬性的 KeyItKey 屬性是指用來分組數據的屬性或屬性中的值。 例如,如果您依名為 Category的屬性分組,則 Key 屬性會包含 Category 屬性中的每個唯一值。 It 屬性是指數據群組中個別記錄的集合。 您可以逐一查看 It 屬性,以擷取群組作業中合併的個別記錄。 例如,如果您依名為 Category的屬性分組,則 It 屬性會包含共用 Category 屬性中通用值的所有個別記錄。

如果您在群組數據時,在 Select 屬性中包含 It 關鍵詞,則必須將別名指派給 It 關鍵詞。 如果 It 沒有別名,LinqDataSource 控件將會擲回例外狀況。 您可以將別名指派給 Key 關鍵詞,但這並非必要專案。

適用於