Problém, který máte, je, že příkaz query trvá příliš dlouho. Domnívám se, že výchozí časový limit pro provedení dotazu je 15 sekund. Musíte nastavit CommandTimeout (v sekundách) tak, aby byl dostatečně dlouhý na dokončení příkazu. "CommandTimeout" se liší od "Connection Timeout" ve vašem připojovacím řetězci a musí být nastaven pro každý příkaz.
Ve vašem sql Selecting Event použijte příkaz:
e.Command.CommandTimeout = 60
například:
Protected Sub SqlDataSource1_Selecting(sender As Object, e As System.Web.UI.WebControls.SqlDataSourceSelectingEventArgs)
e.Command.CommandTimeout = 60
End Sub