2014-03-25 43 views
0

我需要通过say来查看订单详细信息;每周,每月订单通过传递两个日期参数。我尝试了几次,但它返回null。通过传递两个日期参数来查询调度表

这是我到目前为止的代码:

SELECT A.Dispatch_ID, 
A.Dispatched_Date, 
A.Product_ID, 
A.Product_Code, 
A.Product_Loaded, 
A.Meter_Ticket_ID, 
A.Marketer_ID, 
A.Dispatched_Truck, 
A.Loaded_Quantity, 
A.Loading_Depot, 
A.Over_Loaded, 
A.Under_Loaded, 
A.User_Name, 
A.Employee_ID, 
B.Dispatched_Date AS Dispatched_Date1 
FROM ((SELECT Dispatch_ID, Format(Dispatched_Date, 'dd/mm/yyyy') AS Dispatched_Date, Product_ID, Product_Code, Product_Loaded, Meter_Ticket_ID, Marketer_ID, Dispatched_Truck, Loaded_Quantity, Loading_Depot, Over_Loaded, Under_Loaded, User_Name, Employee_ID FROM Dispatched_Entry) A 
INNER JOIN (SELECT Dispatch_ID, Format(Dispatched_Date, 'dd/mm/yyyy') AS Dispatched_Date, Product_ID, Product_Code, Product_Loaded, Meter_Ticket_ID, Marketer_ID, Dispatched_Truck, Loaded_Quantity, Loading_Depot, Over_Loaded, Under_Loaded, User_Name, Employee_ID FROM Dispatched_Entry Dispatched_Entry_1)B ON A.Product_ID = B.Product_ID) 
WHERE A.Dispatched_Date =? AND B.Dispatched_Date =? 

任何帮助将不胜感激。

回答

0

如果要通过SqlCommand实例将参数传递到SQL查询中,请使用命名参数。下面是在C#中最原始的例子:

var query = @"SELECT A.Dispatch_ID, 
       ... 
       WHERE A.Dispatched_Date = @dateA AND B.Dispatched_Date = @dateB"; 
var connection = new SqlConnection(connectionString); 
var command = new SqlCommand(query, connection); 
command.Parameters.AddWithValue("@dateA", someDateA); 
command.Parameters.AddWithValue("@dateB", someDateB); 

上有MSDN进一步的例子。


要配置直接SqlDataSource在ASP.NET中,类似这样的:

<asp:dropdownlist 
    id="DropDownListA" 
    runat="server" 
    autopostback="True"> 
    ... 
</asp:dropdownlist> 

<asp:dropdownlist 
    id="DropDownListB" 
    runat="server" 
    autopostback="True"> 
    ... 
</asp:dropdownlist> 

<asp:sqldatasource 
    id="SqlDataSource1" 
    runat="server" 
    connectionstring="<%$ ConnectionStrings:MyConnectionString %>" 
    selectcommand="SELECT A.Dispatch_ID, 
        ... 
        WHERE A.Dispatched_Date = @dateA AND B.Dispatched_Date = @dateB"> 
    <selectparameters> 
     <asp:controlparameter name="dateA" controlid="DropDownListA" propertyname="SelectedValue"/> 
     <asp:controlparameter name="dateB" controlid="DropDownListB" propertyname="SelectedValue"/> 
    </selectparameters> 
</asp:sqldatasource> 

更多信息,请MSDN找到。

+0

感谢您的迅速响应。我正在使用一个SQL数据源,所有我试图实现的是能够使用两个下拉列表根据查询参数选择不同的日期。 – user3036566

+0

@ user3036566查看我更新后的答案 –

+0

我已经试过实现这个,但它仍然是空白。 – user3036566

相关问题