Asp.net SqlDataSource使用或不使用参数填充dropdownlist

Asp.net SqlDataSource使用或不使用参数填充dropdownlist,asp.net,sql-server,Asp.net,Sql Server,当用户选择日期时,我使用SqlDataSource控件列出搜索结果,但如果该日期为空,则它将列出所有记录。如何执行sql命令 SELECT Ref_No as name, Job_Order_ID as value FROM Job_Order WHERE (Status <> 'JO_Completed') AND (Delivery_Date = @jaDate) OR (Status <> 'JO_Completed') ORDER BY Ref_No 选

当用户选择日期时,我使用SqlDataSource控件列出搜索结果,但如果该日期为空,则它将列出所有记录。如何执行sql命令

SELECT Ref_No as name, Job_Order_ID as value 
FROM Job_Order 
WHERE (Status <> 'JO_Completed') AND (Delivery_Date = @jaDate) 
OR (Status <> 'JO_Completed') ORDER BY Ref_No 
选择Ref\u No作为名称,选择Job\u Order\u ID作为值
从工作单
其中(状态“JO_Completed”)和(交货日期=@jaDate)
或(状态为“工作完成”)参考号的订单
生成dropdownlist的代码

 <asp:SqlDataSource ID="NewJobOrderDS" runat="server" SelectCommand="SELECT Ref_No as name, Job_Order_ID as value FROM Job_Order WHERE (Status <> 'JO_Completed') AND (Delivery_Date = @jaDate) ORDER BY Ref_No" OnSelecting="NewJobOrderDS_Selecting">
                                  <SelectParameters>
                                        <asp:ControlParameter ControlID="txtJADate2" Name="jaDate" PropertyName="Text" Type="DateTime"/>   
                                   </SelectParameters>
                                </asp:SqlDataSource>


您确定您的查询吗?Prop1和Prop2或Prop1=Prop1始终。。无论Prop2的真值是多少。。。我想说的是,您的where子句与(Status'JO_Completed')@avi等价,我不知道如何进行查询。。条件是如果jaDate=null,那么我将执行select语句WHERE(状态'JO_Completed');如果jaDate有值,那么选择语句WHERE(状态'JO_Completed')和(Delivery_Date=jaDate)。您说:“如果日期为null”,这是否意味着您的下拉列表也有null值?你能展示同样的吗。还显示如何将数据绑定到dropdown@FlopScientist对如果日期为空,则下拉列表也将包含空值。我已经为代码绑定下拉列表编辑了我的帖子。我已经通过使用2个sqldatasourceID解决了这个问题,并且它的代码被保护为void txtJADate2_TextChanged(对象发送者,EventArgs e){ddlNewJobOrder.DataSourceID=null;if(txtJADate2.Text==“”){ddlNewJobOrder.DataSource=NewJobOrderDS1;}else{ddlNewJobOrder.DataSource=NewJobOrderDS2;}ddlNewJobOrder.DataBind();}