LinqDataSource.Where Propriedade
Definição
Importante
Algumas informações dizem respeito a um produto pré-lançado que pode ser substancialmente modificado antes de ser lançado. A Microsoft não faz garantias, de forma expressa ou implícita, em relação à informação aqui apresentada.
Obtém ou define um valor que especifica quais as condições que devem ser verdadeiras para que um registo seja incluído nos dados recuperados.
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
Valor de Propriedade
Uma cadeia que é usada para criar a cláusula Where.
Implementações
Exemplos
O exemplo seguinte mostra como filtrar os dados devolvidos de uma consulta com base numa condição estática.
<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>
O exemplo seguinte mostra como filtrar os dados com base num valor fornecido pelo utilizador em tempo de execução. Neste exemplo, um DropDownList controlo e um GridView controlo são apresentados na página. Quando o utilizador seleciona um dos valores no DropDownList controlo, o LinqDataSource controlo seleciona da Products tabela apenas as linhas que têm UserPrice valores iguais ao valor selecionado. O GridView controlo apresenta então os dados filtrados.
<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>
Observações
Usa a Where propriedade para especificar as condições para que o registo seja devolvido a partir de uma consulta. A sintaxe da Where propriedade é a mesma que a de uma cláusula LINQ Where em C#.
Especificas uma expressão que resulta num valor booleano e, se a expressão for avaliada como true para uma dada linha, a linha é incluída no conjunto de resultados. As expressões são compostas por nomes de colunas, operadores de comparação e valores a comparar, como mostrado no seguinte exemplo:
<asp:LinqDataSource ... Where="Price > 50"...>
Para especificar múltiplas expressões ligadas por operadores lógicos AND ou OR por operadores, usa-se && como operador AND lógico e || como operador OR lógico, como mostrado no exemplo seguinte:
<asp:LinqDataSource ... Where="Price > 50 && Price < 100"...>
<asp:LinqDataSource ... Where="Price <= 50 || Price >= 100"...>
Se quiser testar uma propriedade contra um valor de cadeia literal, o valor da cadeia literal deve estar incluído entre aspas duplas. Para fazer isto em marcação, inclua o valor da Where cláusula em aspas simples, como mostrado no exemplo seguinte:
<asp:LinqDataSource ... Where='Category = "Sports"' ... >
Para testar contra um valor literal de cadeia no código, use caracteres de escape apropriados à linguagem que está a usar para inserir aspas duplas, como mostrado no seguinte exemplo:
LinqDataSource1.Where = "Category = ""Sports"""
LinqDataSource1.Where = "Category = \"Sports\"";
Se quiser testar se uma cadeia é maior ou menor que outra cadeia, deve usar métodos da String classe em vez de usar < operadores or > entre o nome da coluna e o valor da cadeia. Os exemplos seguintes mostram como selecionar linhas que têm valores de Categoria inferiores, menores ou iguais a, maiores que, ou maiores ou iguais a "Desporto":
<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' ... >
Também pode usar outros métodos da String classe, como StartsWith, EndsWith, e Contains. Para mais informações sobre como comparar cordas, consulte Comparar Cordas. Para mais informações sobre a sintaxe da cláusula Where, veja Operadores C# e cláusula where.
Para além de filtrar com base em valores estáticos que define ao criar a página Web, pode filtrar com base em valores dinâmicos que são avaliados em tempo de execução. Nesse caso, inclui um parâmetro nomeado na Where propriedade que atua como marcador para o valor. Depois adiciona-se um parâmetro com o nome correspondente à WhereParameters coleção.
Alternativamente, pode definir a AutoGenerateWhereClause propriedade para true e definir os parâmetros na WhereParameters coleção. Quando a AutoGenerateWhereClause propriedade é true, não é necessário incluir os parâmetros nomeados na Where propriedade. Em vez disso, o controlo LinqDataSource gera automaticamente a cláusula Where a partir dos parâmetros da WhereParameters propriedade.
Para mais informações sobre como filtrar dados, consulte Walkthrough: Selecionar e Filtrar um Subconjunto de Dados com os controlos LinqDataSource e GridView.