Amranullah Hassanzada Ответов: 2

Как можно найти близкие данные из базы данных, если данные с одинаковым значением для пользователя, вставленного в текстовое поле, не существуют в базе данных?


Я хочу найти данные из базы данных, которые близки к значению вставленного пользователем числа в текстовом поле. Когда пользователь хочет вставить номер в текстовое поле, если номер не соответствует значению каких-либо данных в базе данных, он не должен отображаться пустым, база данных должна отображать близкие данные для вставленного пользователем номера в текстовое поле.

Что я уже пробовал:

<pre> Private Sub BtnSearch_Click(sender As Object, e As EventArgs) Handles BtnSearch.Click
        If cmbtenstion.Text = "UltimateTensileStrength" Then
            Me.Table1BindingSource.Filter = "TensileStrength='" & txtTensile.Text & "'"
        ElseIf cmbDensity.Text = "Density" Then
            Me.Table1BindingSource.Filter = "Density='" & txtDensity.Text & "'"
        ElseIf cmbYield.Text = "YieldStrength" Then
            Me.Table1BindingSource.Filter = "YieldStrength='" & txtYeild.Text & "'"
        ElseIf cmbMoE.Text = "ModulusofElasticity" Then
            Me.Table1BindingSource.Filter = "ModulusofElasticity='" & txtMoE.Text & "'"
        ElseIf cmbCost.Text = "Cost" Then
            Me.Table1BindingSource.Filter = "Cost='" & txtCost.Text & "'"

        End If
    End Sub

2 Ответов

Рейтинг:
2

OriginalGriff

Нет ничего стандартного в том, что предусматривает фильтр "близкое совпадение с числом" - вам придется сортировать элементы по абсолютному значению разницы между желаемым числом и фактическим сохраненным значением.

Не простой, не на всех.


Рейтинг:
0

RickZeeland

Не самое элегантное решение, но вы могли бы сделать что-то вроде этого:

SELECT * FROM TableXXX WHERE CAST(ColumnXXX as CHAR) LIKE '123%'

Или:
SELECT TOP 1 * FROM Customers ORDER BY ABS( CustomerId - @myvalue ) ;