SqlDataSource – Uma propriedade interessante


Estava eu dando manutenção em uma página de uma aplicação construída em ASP.NET 2.0, onde em um relatório que, dado uma consulta utilizando o controle SqlDataSource e seus devidos parametros, é executado uma Stored Procedure dentro de uma base de dados SQL Server e, o result-set é atribuído à um controle DataList no WebForm.

Até então tudo sem problemas e, o pior (para muitos, “o melhor”), sem nenhuma linha de código de servidor (VB.NET ou C#) escrita no CodeBehind. O problema começou quando defini para True a propriedade ConvertEmptyStringToNull de alguns parametros que, capturam os valores de controles do WebForm (como TextBox) para realizar a consulta. Estando essa propriedade definida como True, os parametros que não tiverem seus valores informados, serão convertidos em NULL e, consequentemente, enviados para a query ou Stored Procedure ser executada.

A partir daí as coisas deixaram de funcionar. Fiquei procurando, achando que tinha algo errado no próprio DataList e, mesmo através do Profiler do SQL Server, via que a Stored Procedure não era executada. Depois de algum tempo analisando as propriedades do controle SqlDataSource, vi que existe uma propriedade chamada CancelSelectOnNullParameter que, por padrão é definida como True e, como o próprio nome diz, se existir algum parametro nulo, a query/Stored Procedure não é executada.

Anúncios

Deixe uma resposta

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s