SQL语句从文本框中检查名字的第一个和最后一个字符

时间:2014-09-21 01:58:55

标签: sql full-text-search sql-like

我正在尝试编写一个或多个SQL语句,这些语句将根据人名首字母(最后一个)的文本框条目检索帐户信息。如果只输入一个字母,则以下语句有效,但不能输入。

'variable
Dim strDataSource As String
Dim connStr As String = "provider=Microsoft.Jet.OLEDB.4.0;" & _
    "Data Source = Chapter4.mdb"

strDataSource = "SELECT CustID, LastName, FirstName " & _
       "FROM tblCustomers " & _
       "WHERE UCase(TRIM(LastName)) LIKE '" & UCase(Me.txtCustID.Text) & "%'" 

Dim dt As New DataTable
Dim dataAdapter = New OleDb.OleDbDataAdapter(strDataSource, connStr)

dataAdapter.Fill(dt)
dataAdapter.Dispose()

Me.dgvDisplay.DataSource = dt

我无法弄清楚如何将FirstName添加到搜索中。 谢谢

2 个答案:

答案 0 :(得分:0)

我不知道你的表格中你的字段的名称,但Rajesh建议的内容类似于以下内容。如果您只想要匹配的第一个或最后一个名称,则在WHERE子句中使用OR而不是AND。

strDataSource = "SELECT CustID, LastName, FirstName " & _
       "FROM tblCustomers " & _
       "WHERE UCase(TRIM(LastName)) LIKE '" & UCase(Me.txtCustID.Text) & "%'" _
        AND UCase(TRIM(FirstName)) LIKE '" & UCase(Me.txtFirstName.Text)

答案 1 :(得分:0)

你应该提到这是在VB。

<强>假设:

他们输入的第一个字符是姓氏。

他们输入的第二个角色是名字。

strDataSource = "SELECT CustID, LastName, FirstName " & _
   "FROM tblCustomers " & _
   "WHERE UCase(TRIM(LastName)) LIKE '" & UCase(Me.txtCustID.Text(0)) & "%'"
IF Me.txtCustID.Text.Length > 1 THEN
    strDataSource += " AND UCase(TRIM(FirstName)) LIKE '" &_
    UCase(Me.txtCustID.Text(1)) & "%'"
END IF