2017-01-30 2 views
1
<asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:ConnectionString9 %>" ProviderName="<%$ ConnectionStrings:ConnectionString9.ProviderName %>" SelectCommand="SELECT * FROM [Orders] WHERE ([oStatus] = ?)"> 
    <SelectParameters> 
     <asp:Parameter DefaultValue="CheckedOut" Name="oStatus" Type="String" /> 
    </SelectParameters> 
    </asp:SqlDataSource> 

上記はSqlDataSourceのコードです。私がやろうとしているのは、SelectCommandにWHERE条件を追加し、追加された条件にSelectParametersを追加するのに役立つボタンを追加することです。ボタンでSqlDataSource SelectCommandとSelectParameterを変更する

ボタン私はでSelectCommandがボタンが

SelectCommand="SELECT * FROM [Orders] WHERE ([oStatus] = ?) AND ([oDelivery_Status] = ?)"> 

質問、以上1つのSelectParametersを追加することが可能ですクリックされたときに見えるようにしたいどのような

<asp:Button runat="server" text="filter record" ID="filterbutton" OnClick="filterbutton_Click"/> 

?ボタンOnClickメソッドでこれを行うことは可能ですか?そうでない場合は、他の解決方法がありますか?前もって感謝します。

答えて

0

は、あなたはこのようなあなたのSelectCommandにしたいの両方のパラメータを設定する必要があります。

protected void filterbutton_Click(object sender, EventArgs e) 
{ 
     string stroStatus = ""; 
     string stroDelivery_Status = ""; 
     SqlDataSource1.SelectParameters["oStatus"].DefaultValue = stroStatus; 
     Parameter pm = SqlDataSource1.SelectParameters["oDelivery_Status"]; 


     if (!SqlDataSource1.SelectParameters.Contains(pm)) 
     { 
      SqlDataSource1.SelectParameters.Add("oDelivery_Status", 
      stroDelivery_Status); 
     } 
     SqlDataSource1.SelectCommand = "SELECT * FROM [Orders] WHERE ([oStatus] = @oStatus) AND ([oDelivery_Status] = @oDelivery_Status)" 
} 
+0

はありがとうございます。できます!しかし、DropDownListテキストに文字列stroDelivery_Statusを実行しようとすると、ボタンは最初のクリックの後でしか機能しません。文字列のコードは次のとおりです 'string stroDelivery_Status = DropDownList2.Text;' 最初の使用後にボタンが機能するようにするにはどうすればよいですか? – user7381027

+0

@ user7381027デバッガを配置しましたか?ボタンが2回目に発射されない? –

+0

このコード行に問題があると思いますか? 'SqlDataSource1.SelectParameters.Add(" oDelivery_Status "、stroDelivery_Status);'? 2回目のクリック後、最初のクリックから追加された前のパラメータは削除されないため、3つのパラメータを持つことになります – user7381027

関連する問題