0

別のページから変数を渡してコードから sqldatasource をバインドしようとしていますが、レポートを実行すると 0 レコードが取得されます。

、フローとしての私のコード

<asp:SqlDataSource ID="SqlDataSource1" runat="server"
    ConnectionString="<%$ ConnectionStrings:WorkflowConnStr %>"
    SelectCommand="SELECT * FROM tbl_ServiceTracking WHERE (ActorUID = @strUserId) AND (RequestedDate &gt;= @DateFrom) AND (RequestedDate  &lt;= @DateTo)">
    <SelectParameters>
        <asp:Parameter Name="strUserId" />
        <asp:Parameter Name="DateFrom" />
        <asp:Parameter Name="DateTo" />
    </SelectParameters>
</asp:SqlDataSource>

<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" />

c# コード

string strUserId = Request.QueryString["userid"];
string DateFrom = Request.QueryString["dtfrom"];
string DateTo = Request.QueryString["dtto"];

SqlDataSource1.SelectParameters.Add("strUserId", strUserId);
SqlDataSource1.SelectParameters.Add("DateFrom", DateFrom);
SqlDataSource1.SelectParameters.Add("DateTo", DateTo);
SqlDataSource1.DataSourceMode = SqlDataSourceMode.DataReader;
GridView1.DataSource = SqlDataSource1;
GridView1.DataBind();

私は何か見落としてますか?

4

2 に答える 2

0

デザインモードでselectパラメータを設定することもできます。

<SelectParameters>
  <asp:QueryStringParameter Name="UserID" QueryStringField="userid" 
    Type="String" DefaultValue="userid" />
  <asp:QueryStringParameter DefaultValue="dtfrom" Name="dtfrom" 
    QueryStringField="dtfrom" Type="String" />
  <asp:QueryStringParameter DefaultValue="dtto" Name="dtto" 
    QueryStringField="dtto" Type="String" />
</SelectParameters>
于 2012-08-02T10:34:20.113 に答える
0

コードを変更してこの問題を解決しました

SqlDataSource1.SelectParameters["strUserId"].DefaultValue = strUserId;
SqlDataSource1.SelectParameters["DateFrom"].DefaultValue = DateFrom;
SqlDataSource1.SelectParameters["DateTo"].DefaultValue = DateTo;
于 2012-08-02T10:13:10.117 に答える