У меня возникают проблемы с передачей нулевого значения в хранимую процедуру, например. если опция не выбрана в раскрывающемся списке, как это можно передать как null через sqdatasource в базу данных.
В настоящее время у меня есть несколько выпадающих элементов управления на моей странице, которые содержат значения paramater для передачи в хранимую процедуру.
Когда я выбираю некоторые значения из этих элементов управления, gridview будет отображать результаты, которые должны быть, но проблема, с которой я столкнулась, - это когда никакие значения не выбраны, передает значение null в SP. Я проверил SP, и когда я его выполнил и передал нулевые значения, он дал мне правильные результаты, поэтому я доволен SP. Я пробовал
ConvertEmptyStringToNull="true" DefaultValue=""
в управляющем параметре без везения, а выпадающий параметр "ALL" имеет значение ""
Код для sqldatasource:
<asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:scConnString %>"
SelectCommand="spGetOrgTickets" SelectCommandType="StoredProcedure" CancelSelectOnNullParameter="false">
<SelectParameters>
<asp:SessionParameter Name="org_id" Type="Int32" SessionField="org_id" DefaultValue="" ConvertEmptyStringToNull="false" />
<asp:ControlParameter ControlID="drpPriority" Name="priority_id" PropertyName="SelectedValue"
Type="Int32" ConvertEmptyStringToNull="true" DefaultValue="" />
<asp:ControlParameter ControlID="drpStatus" Name="status_id" PropertyName="SelectedValue"
Type="Int32" ConvertEmptyStringToNull="true" DefaultValue=""/>
</SelectParameters>
</asp:SqlDataSource>
Одно из выпадающих меню:
<asp:DropDownList Style="width: 100%" ID="drpStatus" runat="server" class="field select"
AppendDataBoundItems="True" AutoPostBack="True" DataSourceID="SqlDataSource2_Status"
DataTextField="status" DataValueField="status_id">
<asp:ListItem Value="">All</asp:ListItem>
</asp:DropDownList>
Любые идеи?
Спасибо