Bagikan melalui


LinqDataSource.Where Properti

Definisi

Mendapatkan atau menetapkan nilai yang menentukan kondisi apa yang harus benar agar rekaman disertakan dalam data yang diambil.

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

Nilai Properti

String yang digunakan untuk membuat klausa Where.

Penerapan

Contoh

Contoh berikut menunjukkan cara memfilter data yang dikembalikan dari kueri berdasarkan kondisi statis.

<asp:LinqDataSource 
    ContextTypeName="ExampleDataContext" 
    TableName="Products" 
    Where="Price > 50"
    ID="LinqDataSource1" 
    runat="server">
</asp:LinqDataSource>
<asp:GridView 
    DataSourceID="LinqDataSource1"
    ID="GridView1" 
    runat="server">
</asp:GridView>
<asp:LinqDataSource 
    ContextTypeName="ExampleDataContext" 
    TableName="Products" 
    Where="Price > 50"
    ID="LinqDataSource1" 
    runat="server">
</asp:LinqDataSource>
<asp:GridView 
    DataSourceID="LinqDataSource1"
    ID="GridView1" 
    runat="server">
</asp:GridView>

Contoh berikut menunjukkan cara memfilter data berdasarkan nilai yang disediakan oleh pengguna pada waktu proses. Dalam contoh DropDownList ini, kontrol dan GridView kontrol ditampilkan di halaman. Saat pengguna memilih salah satu nilai dalam DropDownList kontrol, LinqDataSource kontrol memilih dari Products tabel hanya baris yang memiliki UserPrice nilai yang sama dengan nilai yang dipilih. GridView Kontrol kemudian menampilkan data yang difilter.

<asp:DropDownList AutoPostBack="true" ID="DropDownList1" runat="server">
    <asp:ListItem Value="0"></asp:ListItem>
    <asp:ListItem Value="25"></asp:ListItem>
    <asp:ListItem Value="100"></asp:ListItem>
    <asp:ListItem Value="400"></asp:ListItem>
</asp:DropDownList>
<asp:LinqDataSource 
    ContextTypeName="ExampleDataContext" 
    TableName="Products" 
    Where="Price>@UserPrice"
    ID="LinqDataSource1" 
    runat="server">
    <WhereParameters>
        <asp:ControlParameter 
            Name="UserPrice" 
            DefaultValue="0" 
            ControlID="DropDownList1" 
            Type="Int32" />
    </WhereParameters>
</asp:LinqDataSource>
<asp:GridView 
    DataSourceID="LinqDataSource1"
    ID="GridView1" 
    runat="server">
</asp:GridView>
<asp:DropDownList AutoPostBack="true" ID="DropDownList1" runat="server">
    <asp:ListItem Value="0"></asp:ListItem>
    <asp:ListItem Value="25"></asp:ListItem>
    <asp:ListItem Value="100"></asp:ListItem>
    <asp:ListItem Value="400"></asp:ListItem>
</asp:DropDownList>
<asp:LinqDataSource 
    ContextTypeName="ExampleDataContext" 
    TableName="Products" 
    Where="Price > @UserPrice"
    ID="LinqDataSource1" 
    runat="server">
    <WhereParameters>
        <asp:ControlParameter 
            Name="UserPrice" 
            DefaultValue="0" 
            ControlID="DropDownList1" 
            Type="Int32" />
    </WhereParameters>
</asp:LinqDataSource>
<asp:GridView 
    DataSourceID="LinqDataSource1"
    ID="GridView1" 
    runat="server">
</asp:GridView>

Keterangan

Anda menggunakan Where properti untuk menentukan kondisi rekaman yang akan dikembalikan dari kueri. Sintaks untuk Where properti sama dengan sintaks untuk klausa LINQ Where di C#.

Anda menentukan ekspresi yang menghasilkan nilai Boolean, dan jika ekspresi dievaluasi untuk true baris tertentu, baris disertakan dalam tataan hasil. Ekspresi terdiri dari nama kolom, operator perbandingan, dan nilai untuk dibandingkan, seperti yang ditunjukkan dalam contoh berikut:

<asp:LinqDataSource ... Where="Price > 50"...>

Untuk menentukan beberapa ekspresi yang ditautkan oleh operator atau logisAND, Anda menggunakan && sebagai operator AND logis dan || sebagai operator OR logis, seperti yang ditunjukkan dalam contoh OR berikut:

<asp:LinqDataSource ... Where="Price > 50 && Price < 100"...>
<asp:LinqDataSource ... Where="Price <= 50 || Price >= 100"...>

Jika Anda ingin menguji properti terhadap nilai string harfiah, nilai string harfiah harus diapit dalam tanda kutip ganda. Untuk melakukan ini dalam markup, sertakan Where nilai klausul dalam tanda kutip tunggal, seperti yang ditunjukkan dalam contoh berikut:

<asp:LinqDataSource ... Where='Category = "Sports"' ... >

Untuk menguji terhadap nilai string harfiah dalam kode, gunakan karakter escape yang sesuai dengan bahasa yang Anda gunakan untuk menyisipkan tanda kutip ganda, seperti yang ditunjukkan dalam contoh berikut:

LinqDataSource1.Where = "Category = ""Sports"""
LinqDataSource1.Where = "Category = \"Sports\"";

Jika Anda ingin menguji apakah string lebih besar dari atau kurang dari string lain, Anda harus menggunakan metode String kelas alih-alih menggunakan < atau > operator antara nama kolom dan nilai string. Contoh berikut menunjukkan cara memilih baris yang memiliki nilai Kategori yang kurang dari, kurang dari atau sama dengan, lebih besar dari, atau lebih besar dari atau sama dengan "Olahraga":

<asp:LinqDataSource ... Where='Category.CompareTo("Sports") < 0' ... >
<asp:LinqDataSource ... Where='Category.CompareTo("Sports") <= 0' ... >
<asp:LinqDataSource ... Where='Category.CompareTo("Sports") > 0' ... >
<asp:LinqDataSource ... Where='Category.CompareTo("Sports") >= 0' ... >

Anda juga dapat menggunakan metode String kelas lainnya, seperti StartsWith, , EndsWithdan Contains. Untuk informasi selengkapnya tentang cara membandingkan string, lihat Membandingkan String. Untuk informasi selengkapnya tentang sintaks klausa Where, lihat Operator C# dan klausa where.

Selain pemfilteran berdasarkan nilai statis yang Anda tentukan saat membuat halaman Web, Anda dapat memfilter berdasarkan nilai dinamis yang dievaluasi pada waktu proses. Dalam hal ini, Anda menyertakan parameter bernama dalam Where properti yang bertindak sebagai tempat penampung untuk nilai tersebut. Anda kemudian menambahkan parameter yang memiliki nama yang cocok dengan WhereParameters koleksi.

Atau, Anda dapat mengatur properti ke AutoGenerateWhereClausetrue dan menentukan parameter dalam WhereParameters koleksi. AutoGenerateWhereClause Ketika properti adalah true, Anda tidak perlu menyertakan parameter bernama dalam Where properti . Sebagai gantinya LinqDataSource , kontrol secara otomatis menghasilkan klausul Where dari parameter di WhereParameters properti .

Untuk informasi selengkapnya tentang cara memfilter data, lihat Panduan: Memilih dan Memfilter Subset Data dengan Kontrol LinqDataSource dan GridView.

Berlaku untuk