我有一个搜索表单,其中包含一个表中的 2 个字段(名字和姓氏)(仅包含人员信息)和另一个表中的 4 个(事件编号、日期、地点、创建者)(该人员有一个或多个事件)第一个表)通过外键(nameID)链接。我认为问题在于使用什么样的连接以及如何使用 WHERE 子句。
谢谢。
更多信息:@Tim - 用户输入一个或多个字段不是过滤器还是 WHERE 子句?用户不必填写所有字段。那就是我迷路的地方。用户正在尝试查找事件以对其进行更新。这有帮助吗?
此外,如果没有输入完整名称,我必须在 Where 子句中使用“Like%LName%”来获取所有名称。
我的查询如下所示:
Protected Sub BtnSearch_Click(sender As Object, e As EventArgs) Handles BtnSearch.Click
Dim strSearch As String
strSearch = "SELECT tblPatron.LName, tblPatron.FName, tblIncident.CreatedBy, "
strSearch = strSearch + "tblIncident.Inci_ID, tblIncident.Inci_date, tblIncident.Inci_type, tblIncident.Library, "
strSearch = strSearch + "tblIncident.PatronName, tblIncident.Location "
strSearch = strSearch + "FROM tblPatron INNER JOIN tblIncident ON tblPatron.PatronID = tblIncident.PatronID "
strSearch = strSearch + "WHERE "
strSearch = strSearch + "(tblPatron.LName Like '%" + txtLName.Text.ToString() + "%') "
strSearch = strSearch + "AND (tblPatron.FNAME Like '%" + txtFName.Text.ToString() + "%')"
strSearch = strSearch + "AND (tblIncident.Inci_ID ='" + strInciNum.Text.ToString() + "')"
strSearch = strSearch + "AND (tblIncident.Inci_date = '" + txtInciDate.Text.ToString() + "')"
strSearch = strSearch + "AND (tblIncident.Inci_type = '" + ddInciCat.SelectedValue.Trim + "')"
strSearch = strSearch + "AND (tblIncident.Library = '" + ddLib.SelectedValue.Trim + "')"
SearchPDS.SelectCommand = strSearch
SearchPDS.DataBind()
GridSearchResults.DataBind()
GridSearchResults.Visible = True
End Sub