je une grille de données liée à une source de données de la manière typique (simplifiée par souci de concision):dates Valider avant d'exécuter sql en asp.net
<asp:SqlDataSource ID="ds" runat="server" ConnectionString="xxx"
ProviderName="yyy" SelectCommand="SELECT "a from A where date > ?">
<SelectParameters>
<asp:ControlParameter ControlID="txtDateFrom" Name="fromDate" PropertyName="Value" Type="DateTime"/>
</SelectParameters>
...
J'ai aussi un validateur personnalisé sur txtDateFrom
<asp:CustomValidator ID="fromDateCorrectVal" runat="server" ControlToValidate="txtDateFrom" ErrorMessage="From date is not valid" OnServerValidate="fromDateCorrectVal_ServerValidate" Display="None"/>
Lorsque le code est derrière semblable à ceci:
protected void fromDateCorrectVal_ServerValidate(object source, ServerValidateEventArgs args)
{
DateTime parsedDate;
if (!DateTime.TryParse(tryDate, out parsedDate))
{
args.IsValid = false;
fromDateCorrectVal.ErrorMessage = "Invalid from date";
}
}
Mais cela ne semble pas fonctionner! Si j'entre des déchets dans le champ de date, j'obtiens une erreur ASP - l'analyse des jetons de date invalide.
Comment est-ce que je peux arrêter le SQL essayant de lancer, si la validation échoue? (Je pense que je dois vérifier la isValid page à un moment donné, mais mes efforts pour essayer ce dans le cas où datasource_Selecting ne semble pas fonctionner)
Merci d'avance pour toute aide
Ryan