LinqDataSource.Where Özellik
Tanım
Önemli
Bazı bilgiler ürünün ön sürümüyle ilgilidir ve sürüm öncesinde önemli değişiklikler yapılmış olabilir. Burada verilen bilgilerle ilgili olarak Microsoft açık veya zımni hiçbir garanti vermez.
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.