Подтвердить что ты не робот

<asp: ControlParameter - передать значение null в DB через sqldatasource

У меня возникают проблемы с передачей нулевого значения в хранимую процедуру, например. если опция не выбрана в раскрывающемся списке, как это можно передать как 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>

Любые идеи?

Спасибо

4b9b3361

Ответ 1

Отсортировано... просто нужно CancelSelectOnNullParameter = "false" в sqldatasource.