Hinzufügen ControlParameter zu SqlDataSource-verhindert, dass die Abfrage und databinding?
Habe ich ein SqlDataSource, dass eine gespeicherte Prozedur aufruft und es funktioniert gut. Wenn ich einen <ControlParameter>
- tag hinzufügen, um ein zusätzliches argument, dann ist die Abfrage wird nie ausgelöst und das databinding tritt nie ein. Vorschläge?
Dies funktioniert:
<asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:DefaultDB %>"
SelectCommand="SP_WHATEVER" SelectCommandType="StoredProcedure"
UpdateCommand="SP_WHATEVER2" UpdateCommandType="StoredProcedure">
<SelectParameters>
<asp:SessionParameter DefaultValue="" Name="UserName" SessionField="RP_Program" Type="String" />
</SelectParameters>
<UpdateParameters>
<snip...>
</UpdateParameters>
</asp:SqlDataSource>
, Wenn ich die ControlParameter, die databinding-Fehler tritt nicht mehr auf:
<asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:DefaultDB %>"
SelectCommand="SP_WHATEVER" SelectCommandType="StoredProcedure"
UpdateCommand="SP_WHATEVER2" UpdateCommandType="StoredProcedure">
<SelectParameters>
<asp:SessionParameter DefaultValue="" Name="UserName" SessionField="RP_Program" Type="String" />
<asp:ControlParameter Name="SprocArgName" ControlID="ddlFilter" PropertyName="SelectedValue" Type="String" />
</SelectParameters>
<UpdateParameters>
<snip...>
</UpdateParameters>
</asp:SqlDataSource>
Den ControlParameter bezieht sich auf ein gültiges Objekt auf der Seite. Irgendwelche anderen Vorschläge?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wahrscheinlich einer der parameter leer oder null ist. Hinzufügen CancelSelectOnNullParameter="false" auf dem asp:SqlDataSource-und ConvertEmptyStringToNull="true" für beide Parameter. Sobald es funktioniert, optimieren Sie die Parameter so, dass die SP bekommt, was es erwartet.