LinqDataSource.Where Özellik

Tanım

Bir kaydın alınan verilere dahil edilmesi için hangi koşulların doğru olması gerektiğini belirten bir değer alır veya ayarlar.

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

Özellik Değeri

Where yan tümcesini oluşturmak için kullanılan dize.

Uygulamalar

Örnekler

Aşağıdaki örnekte, bir sorgudan döndürülen verilerin statik bir koşula göre nasıl filtreleneceği gösterilmektedir.

<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>

Aşağıdaki örnekte, çalışma zamanında kullanıcı tarafından sağlanan bir değere göre verilerin nasıl filtreleneceği gösterilmektedir. Bu örnekte, sayfada bir DropDownList denetim ve bir GridView denetim görüntülenir. Kullanıcı denetimdeki değerlerden birini seçtiğinde DropDownList , LinqDataSource denetim tablodan Products yalnızca seçili değere eşit değerlere sahip UserPrice satırları seçer. Denetim GridView daha sonra filtrelenmiş verileri görüntüler.

<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>

Açıklamalar

Sorgudan döndürülecek kaydın koşullarını belirtmek için özelliğini kullanırsınız Where . özelliğinin Where söz dizimi, C# dilinde LINQ Where yan tümcesinin söz dizimi ile aynıdır.

Boole değeriyle sonuçlayan bir ifade belirtirsiniz ve ifade belirli bir satır için olarak değerlendirilirse true , satır sonuç kümesine eklenir. İfadeler, aşağıdaki örnekte gösterildiği gibi karşılaştırılan sütun adlarından, karşılaştırma işleçlerinden ve değerlerden oluşur:

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

Mantıksal AND veya OR işleçlerle bağlantılı birden çok ifade belirtmek için, aşağıdaki örnekte gösterildiği gibi mantıksal AND işleci ve || mantıksal OR işleci olarak kullanırsınız&&:

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

Bir özelliği değişmez dize değeriyle sınamak istiyorsanız, değişmez dize değeri çift tırnak içine alınmalıdır. Bunu işaretlemede yapmak için, Where yan tümce değerini aşağıdaki örnekte gösterildiği gibi tek tırnak içine alın:

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

Koddaki sabit dize değeriyle test etmek için, aşağıdaki örnekte gösterildiği gibi çift tırnak işareti eklemek için kullandığınız dile uygun kaçış karakterlerini kullanın:

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

Bir dizenin başka bir dizeden büyük veya daha küçük olup olmadığını test etmek istiyorsanız, sütun adı ile dize değeri arasında veya > işleçleri String kullanmak < yerine sınıfının yöntemlerini kullanmanız gerekir. Aşağıdaki örneklerde Kategori değerleri "Spor" değerinden küçük, küçük veya buna eşit, büyüktür veya ondan büyük veya buna eşit olan satırların nasıl seçildiğini gösterir:

<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' ... >  

Sınıfının , EndsWithve Containsgibi StartsWithdiğer yöntemlerini String de kullanabilirsiniz. Dizeleri karşılaştırma hakkında daha fazla bilgi için bkz. Dizeleri Karşılaştırma. Where yan tümcesi söz dizimi hakkında daha fazla bilgi için bkz. C# İşleçleri ve where yan tümcesi.

Web sayfasını oluştururken tanımladığınız statik değerlere göre filtrelemeye ek olarak, çalışma zamanında değerlendirilen dinamik değerlere göre filtreleyebilirsiniz. Bu durumda, özelliğine Where değer için yer tutucu işlevi gören adlandırılmış bir parametre eklersiniz. Ardından koleksiyona WhereParameters eşleşen ada sahip bir parametre eklersiniz.

Alternatif olarak, özelliğini true olarak ayarlayabilir AutoGenerateWhereClause ve koleksiyondaki WhereParameters parametreleri tanımlayabilirsiniz. AutoGenerateWhereClause özelliği olduğundatrue, adlandırılmış parametreleri Where özelliğine eklemeniz gerekmez. Bunun yerine, LinqDataSource denetim özelliğindeki parametrelerden Where yan tümcesini WhereParameters otomatik olarak oluşturur.

Verileri filtreleme hakkında daha fazla bilgi için bkz . İzlenecek yol: LinqDataSource ve GridView Denetimleri ile Veri Alt Kümesini Seçme ve Filtreleme.

Şunlara uygulanır