【问题标题】:SQL Statement to check first character for first and last name from textbox从文本框中检查名字和姓氏的第一个字符的 SQL 语句
【发布时间】:2014-09-21 01:58:55
【问题描述】:

我正在尝试编写一个或多个 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

我不知道如何将名字添加到搜索中。 谢谢

【问题讨论】:

  • 在 where 子句中为 firstname 添加或条件与 lastname 过于相似

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


【解决方案1】:

我不知道表单中字段的名称,但 Rajesh 的建议类似于以下内容。如果您只想匹配第一个 OR 姓氏,则在 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 个字符才能完成搜索。第一个和最后一个首字母都被输入到 1 个文本框中。如果我在说没有找到记录中输入第二个字符。
  • 好的,所以也许我误解了你需要发生的事情。您是说您的表单上只有一个文本输入框,并且您正试图将字符串拆分为两个单独的搜索条件?如果你这样做,你必须使用类似 SUBSTRING() msdn.microsoft.com/en-us/library/ms187748.aspx 的东西将字符串分成两个单独的字符串。不过,这可能是一个问题设计。如果用户输入 3 个或更多字符会怎样?你能用2个文本框吗?
【解决方案2】:

你应该提到这是在 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

【讨论】:

    猜你喜欢
    • 2020-10-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-31
    • 2016-05-31
    • 1970-01-01
    • 2012-09-12
    • 1970-01-01
    相关资源
    最近更新 更多