【发布时间】:2019-09-12 22:29:24
【问题描述】:
我正在尝试压缩我的代码,以便根据 c# 变量选择用户想要使用的 where 子句。
我尝试过使用参数和我在网上看到的其他一些想法,但无法使其发挥作用。
if (btnUseDateRange.Text == "Disabled")
{
var queryTestedControls =
(from t in dbContext.UUT_RESULT
where t.PART_NAME.Contains(ControlSelected)
&& t.UUT_SERIAL_NUMBER.CompareTo(BarcodeStart) >= 0
&& t.UUT_SERIAL_NUMBER.CompareTo(BarcodeEnd) <= 0
select t.UUT_SERIAL_NUMBER).Count();
var queryPassedControls =
(from t in dbContext.UUT_RESULT
where t.PART_NAME.Contains(ControlSelected)
&& t.UUT_SERIAL_NUMBER.CompareTo(BarcodeStart) >= 0
&& t.UUT_SERIAL_NUMBER.CompareTo(BarcodeEnd) <= 0
&& t.UUT_STATUS == "Passed"
select t.UUT_SERIAL_NUMBER).Count();
lblTested.Text = queryTestedControls.ToString();
lblPassed.Text = queryPassedControls.ToString();
}
else if (btnUseDateRange.Text == "Enabled")
{
var queryTestedControls =
(from t in dbContext.UUT_RESULT
where t.PART_NAME.Contains(ControlSelected)
&& t.START_DATE_TIME >= DateStart
&& t.START_DATE_TIME <= DateEnd
select t.UUT_SERIAL_NUMBER).Count();
var queryPassedControls =
(from t in dbContext.UUT_RESULT
where t.PART_NAME.Contains(ControlSelected)
&& t.START_DATE_TIME >= DateStart
&& t.START_DATE_TIME <= DateEnd
&& t.UUT_STATUS == "Passed"
select t.UUT_SERIAL_NUMBER).Count();
lblTested.Text = queryTestedControls.ToString();
lblPassed.Text = queryPassedControls.ToString();
}
我的代码会很长,因为我正在计算 Passed、Failed、Aborted 和 Other。有没有办法压缩查询?根据 if 语句中的按钮,用户选择使用条形码范围或日期时间范围进行查询。
【问题讨论】:
标签: c# sql asp.net entity-framework