私の「選択」ステートメントでは、LinqDataSource の WhereParameters コレクションを使用するときに、2 つの動的パラメーターを追加する必要があります。
e.WhereParameters.Add(param, True)
ただし、システムはこれらのパラメーターを として追加しますが、どちらかまたはどちらかが真である場合AND
に実行したいと思います。OR
parameter 1
parameter 2
これはどのように行うことができますか?
私の「選択」ステートメントでは、LinqDataSource の WhereParameters コレクションを使用するときに、2 つの動的パラメーターを追加する必要があります。
e.WhereParameters.Add(param, True)
ただし、システムはこれらのパラメーターを として追加しますが、どちらかまたはどちらかが真である場合AND
に実行したいと思います。OR
parameter 1
parameter 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");
Joe Albahari のPredicateBuilderを使用できます。私はそれを使って大成功を収めました。