Denne fejl opstår ofte i tilfælde af ODP.NET. Problemet ligger i OracleCommands standardadfærd, når det kommer til at matche forespørgselsparametre til de leverede parametre. Som standard er positionen metode bruges i stedet for navn metode. I praksis vil hver parameter, der tilføjes til kommandoen, blive taget som den er, uanset navnet, og hvis du refererer til en parameter to gange i forespørgselsteksten, skal du tilføje værdien for den to gange!
Denne standardadfærd kan tilsidesættes ved at indstille BindByName
til true
på OracleCommad
men i tilfælde af SqlDataSource
du har ikke adgang til det, og du skal angive værdier flere gange i den rigtige rækkefølge:
<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>
(Jeg håber ikke, jeg er gået glip af nogen)
Som et alternativ kan du overveje at oprette din egen udbyder afledt fra ODP.NET wwith BindByName
justeret.