Esse erro geralmente acontece no caso do ODP.NET. O problema está no comportamento padrão do OracleCommand quando se trata de corresponder parâmetros de consulta aos parâmetros fornecidos. Por padrão, a posição é usado em vez de nome método. Na prática, cada parâmetro adicionado ao comando será considerado como está, independentemente do nome, e se você fizer referência a um parâmetro duas vezes no texto da consulta, precisará adicionar o valor duas vezes!
Esse comportamento padrão pode ser substituído definindo
BindByName
para true
em OracleCommad
mas no caso de SqlDataSource
você não tem acesso a ele e precisa fornecer valores várias vezes na ordem correta:<asp:SqlDataSource ID="EDTDS" runat="server" ConnectionString="<%$ ConnectionStrings:Camstar %>" ProviderName="<%$ ConnectionStrings:Camstar.ProviderName %>" SelectCommand="select ..."
<SelectParameters>
<asp:SessionParameter ConvertEmptyStringToNull="False" Name="startDate" SessionField="startDate" />
<asp:SessionParameter ConvertEmptyStringToNull="False" Name="startDate" SessionField="startDate" />
<asp:SessionParameter ConvertEmptyStringToNull="False" Name="endDate" SessionField="endDate" />
<asp:SessionParameter ConvertEmptyStringToNull="False" Name="equipID" SessionField="equipID" />
<asp:SessionParameter ConvertEmptyStringToNull="False" Name="startDate" SessionField="startDate" />
<asp:SessionParameter ConvertEmptyStringToNull="False" Name="endDate" SessionField="endDate" />
<asp:SessionParameter ConvertEmptyStringToNull="False" Name="equipID" SessionField="equipID" />
<asp:SessionParameter ConvertEmptyStringToNull="False" Name="venmod" SessionField="venmod" />
<asp:SessionParameter ConvertEmptyStringToNull="False" Name="handType" SessionField="handType" />
<asp:SessionParameter ConvertEmptyStringToNull="False" Name="handID" SessionField="handID" />
<asp:SessionParameter ConvertEmptyStringToNull="False" Name="operID" SessionField="operID" />
</SelectParameters>
</asp:SqlDataSource>
(espero não ter perdido nenhum)
Como alternativa, você pode considerar a criação de seu próprio provedor derivado do ODP.NET com
BindByName
ajustado.