1

私の「選択」ステートメントでは、LinqDataSource の WhereParameters コレクションを使用するときに、2 つの動的パラメーターを追加する必要があります。

e.WhereParameters.Add(param, True)

ただし、システムはこれらのパラメーターを として追加しますが、どちらかまたはどちらかが真である場合ANDに実行したいと思います。ORparameter 1parameter 2

これはどのように行うことができますか?

4

2 に答える 2

2

設計時にパラメーターの数がわからず、実行時にしか判断できない場合は、実行時にWhereデータソースのプロパティを変更することを検討してください。実際の値を自分で挿入できます。

 //e.g. we know that we want 4 params this time.
 LinqDataSource1.Where = 
    "Alpha == 1 OR Brave==False OR Charlie> 'Jan 1 1999' or Delta = @DeltaVal";
 LinqDataSource1.WhereParameters.Add("DeltaVal", "O'Flanagan");

実行時にnパラメータがわかっている場合は、設計時に OR ステートメントを単純に配置して、それらの値を変更できます。

おそらく、OR句を LinqDataSource 宣言に正しく配置してください。

<asp:LinqDataSource ID="LinqDataSource1" runat="server"          
     Where="Foo == @FooValue OR Bar==@BarValue">

その後、コード ビハインドでこれら 2 つのパラメーターを追加できwhereます。

LinqDataSource1.WhereParameters.Add("FooValue", "milk");
LinqDataSource1.WhereParameters.Add("BarValue", "eggs");
于 2010-07-22T21:33:54.243 に答える
0

Joe Albahari のPredicateBuilderを使用できます。私はそれを使って大成功を収めました。

于 2010-07-22T16:45:44.227 に答える