如何在搜索文本框中找到DB中的特定名称?

时间:2016-08-25 01:19:02

标签: sql vb.net

我有一个代表搜索框的文本框:
这是我的代码示例:

    Dim txt As String = txt_find.Text
    query = "SELECT empID AS 'ID', fname + ' ' + mname + ' ' + lname AS 'Name' FROM empInfo "
    query &= "WHERE empID LIKE '%" & txt & "%' OR fname LIKE '%" & txt & "%' OR lname LIKE '%" & txt & "%' OR mname LIKE '%" & txt & "%'"

如果用户只输入了员工的名字或姓氏,则返回正确的值 例如:
输入:28或Dennis Or Smith

但是当用户输入全名(例如Dennis Smith)时,结果不会返回任何内容。

应该怎么做?。

3 个答案:

答案 0 :(得分:2)

试试这个:

 "where Empid like '%" & txt & "%' OR  replace(fname + mname + lname,' ','') like replace('%" & txt & "%',' ', '')"

因此,如果您输入'Dennis Smith'或'DennisSmith',它将捕获结果行

答案 1 :(得分:1)

你可以尝试:

"WHERE fname+' '+lname like '%" & txt & "' OR  fname+' '+mname+' '+lname like '%" & txt & "'"

这只是想法,你只需要包含可能的名称格式,如 LastName,FirstName MiddleName ,或者如果你能想到更多,你可以更好地处理你的搜索。

答案 2 :(得分:0)

也许你应该这样。

"WHERE LastName like '%" & LastName.text & "%' OR fname LIKE '%" & FirstName.text & "%'" and so on.

只需在搜索中使用重要字段即可。名字或姓氏都可以。