如何使用或操作符在linq sql
本文关键字:linq sql 操作符 何使用 | 更新日期: 2023-09-27 18:08:23
我正在使用这个代码,但得到一个错误。我想使用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"
操作符?
将这两个条件放在一个Where
调用中,并使用正常的c# ||
操作符:
var i = dc.vins.Where(aa => aa.startDate < DateTime.Now || aa.Sno > 1);
请注意,我也删除了你的Select
调用,因为它没有做任何有用的。
请注意,根据您的具体情况,您可能希望使用DateTime.UtcNow
而不是DateTime.Now
;您应该仔细考虑如何处理时区。
这个怎么样?
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
进行任何计算或修改。
使用
.Where(aa => aa.startDate < DateTime.Now || aa.Sno > 1 ).Select...
在WHERE
子句中使用||
var i = dc.vins.Where(aa => aa.startDate < DateTime.Now || aa.Sno > 1);
OR操作符是||
,因此您可以尝试:
var i = dc.vins.Where(aa => aa.startDate < DateTime.Now || aa.Sno > 1);