0

我正在使用此代码,但出现错误。我想使用OR运算符。

DataClasses1DataContext dc = new DataClasses1DataContext();

private void button4_Click(object sender, EventArgs e)
{
   var i = dc.vins
             .Where(aa => aa.startDate < DateTime.Now)
             .Where(aa => aa.Sno > 1)
             .Select(aa => aa);
   dataGridView1.DataSource = i;
}

此代码作为"AND"操作员工作,我怎样才能让它充当"OR"操作员?

4

5 回答 5

7

只需将两个条件放在一个Where调用中,并使用普通的 C#||运算符:

var i = dc.vins.Where(aa => aa.startDate < DateTime.Now || aa.Sno > 1);

请注意,我还删除了您的Select电话,因为它没有做任何有用的事情。

请注意,根据您的具体情况,您可能希望使用DateTime.UtcNow而不是DateTime.Now; 您应该仔细考虑您希望如何处理时区。

于 2013-04-10T15:07:38.477 回答
4

这个怎么样?

var i = dc.vins.Where(aa => (aa.startDate < DateTime.Now) || (aa.Sno > 1));

实际上你的AND情况应该是这样的,

var i = dc.vins.Where(aa => (aa.startDate < DateTime.Now) && (aa.Sno > 1));

.Select()是可选的,因为您尚未对 . 进行任何计算或修改aa

于 2013-04-10T15:07:31.193 回答
1

只需使用||inside yourWHERE子句

var i = dc.vins.Where(aa => aa.startDate < DateTime.Now || aa.Sno > 1);
于 2013-04-10T15:09:31.687 回答
1

利用

.Where(aa => aa.startDate < DateTime.Now || aa.Sno > 1 ).Select...
于 2013-04-10T15:07:22.490 回答
0

OR 运算符是||,因此您可以尝试:

var i = dc.vins.Where(aa => aa.startDate < DateTime.Now || aa.Sno > 1);
于 2013-04-10T15:08:06.180 回答