0

我有一些用于输入搜索值的文本框。我有一个存储过程,它有 2 个日期时间、1 个 int 和 1 个 char 参数。我将 my 附加SqlDataSource到 aTextBox并将默认值设置为 null 但是当我运行我的项目时,空的会传递给存储过程,但我的存储过程需要一个 null 值。如何将 null 与SqlDataSource绑定到文本框一起传递?

<asp:SqlDataSource ID="SqlDataSource1" runat="server" 
    ConnectionString="<%$ ConnectionStrings:DB_MosquesAffairsConnectionString3 %>"
    SelectCommand="mqa.S_Conference_Select_Date"
    SelectCommandType="StoredProcedure" onload="SqlDataSource1_Load"
    onselecting="SqlDataSource1_Selecting">
    <SelectParameters>
        <asp:ControlParameter ControlID="TextBox1" DbType="Date" DefaultValue="null"
            Name="StartDate" PropertyName="Text" />
        <asp:ControlParameter ControlID="TextBox2" DbType="Date" DefaultValue="null" 
            Name="EndDate" PropertyName="Text" />
        <asp:ControlParameter ControlID="TextBox3" DefaultValue="null" 
            Name="ConferenceName" PropertyName="Text" Type="String" />
        <asp:ControlParameter ControlID="TextBox4" DefaultValue="null" 
            Name="ConferenceID" PropertyName="Text" Type="Int32" />
    </SelectParameters>
</asp:SqlDataSource>
4

1 回答 1

1

您可以使用以下属性/属性ControlParameter

ConvertEmptyStringToNull="true" DefaultValue=""


  <SelectParameters>
                     <asp:ControlParameter ControlID="TextBox1" DbType="Date"     ConvertEmptyStringToNull="true" DefaultValue=""
                         Name="StartDate" PropertyName="Text" />
                     <asp:ControlParameter ControlID="TextBox2" DbType="Date"     ConvertEmptyStringToNull="true" DefaultValue=""
                         Name="EndDate" PropertyName="Text" />
                     <asp:ControlParameter ControlID="TextBox3"     ConvertEmptyStringToNull="true" DefaultValue="" 
                         Name="ConferenceName" PropertyName="Text" Type="String" />
                     <asp:ControlParameter ControlID="TextBox4"     ConvertEmptyStringToNull="true" DefaultValue=""
                         Name="ConferenceID" PropertyName="Text" Type="Int32" />
                 </SelectParameters>
于 2013-10-21T12:36:38.110 回答