我有一个名为 call 的数据库表,其中包含 call_time、location、emergency_type 列,并且紧急情况分为三种类型:护理人员、警察和消防员。在 windows 窗体中,我创建了 CheckBoxes 'paramedics'、'police'、'firefighters',并且我想检索所有符合用户选择的表列。
我创建了一个函数:
public static DataTable GetHistory(DateTime from, DateTime to, bool paramedics, bool police, bool firefighters)
{
string select =
"SELECT call_time, location, emergency_type where call_time between @from AND @to AND";
if(paramedics)
{
select += " emergency_type = 'paramedics' ";
}
if(paramedics && police)
{
select +=" emergency_type = 'paramedics' OR emergency_type = 'police';
}
...
}
然而,这段代码看起来很脏,因为如果有 30 种紧急情况,就会有 30 种!组合,我会在写所有 if 语句之前变老。
如果您可以分享您检索满足所选搜索条件的数据的做法,如果您可以选择很多选项,我将不胜感激。
谢谢!