Dinamicamente construído SelectCommand para GridView SqlDataSource em asp.net
-
08-07-2019 - |
Pergunta
Eu estou trabalhando com um GridView que usa um elemento SqlDataSource que tem esta aparência:
<asp:SqlDataSource ID="InventoryDB" runat="server" ConnectionString="<%$ ConnectionStrings:InventoryConnectionString %>"
SelectCommand="SELECT [Server], [Customer] FROM [Website] WHERE [Owner] = 'someOwner'">
</asp:SqlDataSource>
Eu gostaria de substituir a peça 'someOwner' da cláusula onde, com algo dinâmico, assim:
SelectCommand="SELECT [Server], [Customer] FROM [Website] WHERE [Owner] = '<%# UserManager.getCurrentUser(Request) %>'"
Mas quando eu fizer isso, ele parece usar o texto literal da cláusula WHERE em vez de avaliar a minha chamada de função, o que obviamente não funciona. O que é o caminho certo para fazer isso?
Solução
A maneira correta de lidar com isso é usar parâmetros. A MSDN documentação sobre ele é bastante completa em mostrando como usá-los.
parâmetros do usuário com controles de fonte de dados tem um pouco mais detalhada e informações acessíveis sobre o uso de parâmetros.
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow