#vb.net
#vb.net
Вопрос:
С моим доступом к таблице1 у меня есть 5 полей:
Числовой тип COMPANY_Id,
COMPANY_Ordre Числовой тип,
COMPANY_Total Числовой тип,
Тип текста COMPANY_Name,
Тип текста COMPANY_Date
Когда я создаю фильтр по COMPANY_Total, COMPANY_Name или COMPANY_Date, тогда фильтр работает. Но с тем же типом числовых полей (COMPANY_Ordre) это не работает.
Это мой код фильтра просмотра данных:
Private Sub TextBox1_TextChanged(sender As Object, e As EventArgs) Handles TextBox1.TextChanged
Try
Dim Dv_Filtre As DataView = DT.DefaultView
Dv_Filtre.RowFilter = "Convert( [COMPANY_Ordre], 'System.String') LIKE '" amp; TextBox1.Text amp; "%' OR Convert( [COMPANY_Total], 'System.String') LIKE '" amp; TextBox1.Text amp; "%' OR [COMPANY_Name] LIKE '" amp; TextBox1.Text amp; "%' OR [COMPANY_Date] LIKE '" amp; TextBox1.Text amp; "%'"
Catch ex As Exception
End Try
End Sub
Комментарии:
1. Что делает Convert? Convert — это класс, и вы должны вызвать метод класса, но я не думаю, что это будет работать внутри строки. Как одно число «похоже» на другое число? Как одна дата «похожа» на другую дату. Даты всегда должны храниться как даты, а не как текст.
2. Спасибо, Мэри, за объяснение. но это очень хорошо работает только со всеми полями COMPANY_ordre
Ответ №1:
Попробуйте добавить% также перед текстовым полем 1, чтобы получить гораздо больше результатов, а не только данные, которые заканчиваются ТОЛЬКО определенными критериями, такими как это:
Dv_Filtre.RowFilter="Convert([COMPANY_Ordre],'System.String') LIKE '%" amp; TextBox1.Text amp; "%' OR ...
Я надеюсь, что это может помочь тебе, брат
^_^
Комментарии:
1. Спасибо. У меня был тот же результат. Всегда только с этим полем ( COMPANY_Ordre ) это не работает .. это поле заполняется только одним числом, подобным этому, например, 19 строк (1-1-1-2-2-2-2-2-2-3-3-3-3-3-3-3-3).
2. Теперь я понимаю, братан, так вот почему? спасибо, что поделились. ^_^