0
我有这段旨在搜索数据库的代码。用户在这里应该有3个选项:只输入姓氏,名字和用户可以使用他们的姓氏和名字进行搜索。搜索中的非必填字段
如果我同时提供字符串 - 姓氏和名字,此代码将从我的数据库中检索记录。但是如果我只输入其中的一个,我的结果列表总是空的。
var query = from x in db.people
where (txtSurname == null || x.Surname== txtSurname.Text)
&& (txtFirstName == null || x.FirstName == txtFirstName.Text)
select x;
var data = query.ToList();
peopleBindingSource.DataSource = data;
使用此方法也可能会生成更好的缓存查询计划。由于参数嗅探来自先前运行的大多数未使用的字段,因此您不会收到错误的索引。 –
如果在问题中进行比较检查,则这不完全相同。如果(txtSurname == null),你只是检查是否(txtSurname.Text)。 – David
@大卫是的,但我怀疑这是造成原始问题的错字。 – DavidG