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