Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/linq/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net LinqDataSource动态参数-使用where参数强制或_Asp.net_Linq_Linqdatasource - Fatal编程技术网

Asp.net LinqDataSource动态参数-使用where参数强制或

Asp.net LinqDataSource动态参数-使用where参数强制或,asp.net,linq,linqdatasource,Asp.net,Linq,Linqdatasource,在我的“selecting”语句中,我需要在使用时添加两个动态参数: 但是,系统将这些参数添加为和,但我想执行或,其中参数1或参数2为真 如何做到这一点?你可以用乔·阿尔巴哈里的。我已经很成功地使用它了。 < P>如果在设计时不知道参数的数量,只能在运行时确定,考虑在运行时更改数据源的哪里:< /代码>属性。您可以自己插入实际值 //e.g. we know that we want 4 params this time. LinqDataSource1.Where = "Alph

在我的“selecting”语句中,我需要在使用时添加两个动态参数:

但是,系统将这些参数添加为
,但我想执行
,其中
参数1或
参数2
为真


如何做到这一点?

你可以用乔·阿尔巴哈里的。我已经很成功地使用它了。

< P>如果在设计时不知道参数的数量,只能在运行时确定,考虑在运行时更改数据源的<代码>哪里:< /代码>属性。您可以自己插入实际值

 //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语句,并修改它们的值

也许可以将您的
子句放在LinqDataSource声明中

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

使用这种方法的问题是,我不知道我将在公共控件中使用大约8种不同的“foovalue”或“barvalue”中的哪一种。因此,动态添加whereparameter,而不是预先声明它。我可以看看是否可以添加两个通用值,然后在运行时更改属性的名称…@Carl:update以显示如何在运行时修改where和参数。@Carl:此更新对您有帮助吗?如果您需要更多帮助,请发表评论。请记住,作为StackOverflow社区的一部分,向上投票并“接受答案”!
<asp:LinqDataSource ID="LinqDataSource1" runat="server"          
     Where="Foo == @FooValue OR Bar==@BarValue">
LinqDataSource1.WhereParameters.Add("FooValue", "milk");
LinqDataSource1.WhereParameters.Add("BarValue", "eggs");