Возврат даты в результатах поиска
У меня есть различные поля поиска в моей программе (по одному на форму), которые закодированы для получения результатов различными методами, и это прекрасно работает, пока возвращаемые результаты находятся в целочисленном формате. Моя текущая проблема заключается в том, что я работаю над новой формой и мне нужно поле поиска, чтобы вернуть результаты по REPAIR_DATE, которое является полем DateTime.
мой текущий код выглядит следующим образом:
<pre> Private Sub btnSearch_Click(sender As System.Object, e As System.EventArgs) Handles btnSearch.Click Cursor = Cursors.WaitCursor Dirty() If cbColName.Text = "SEARCH BY:" Then MeMsgBoxSearchCriteria.ShowDialog() Else : lbSearchResults.Items.Clear() Select Case MaintenanceDataSet.Maintenance_Table.Columns(cbColName.Text).DataType Case GetType(Integer) DV.RowFilter = cbColName.Text & " = " & tbSearchInput.Text.Trim Case GetType(Date) DV.RowFilter = cbColName.Text & " = #" & tbSearchInput.Text.Trim & "#" Case Else DV.RowFilter = cbColName.Text & " LIKE '*" & tbSearchInput.Text.Trim & "*'" End Select If DV.Count > 0 Then For IX As Integer = 0 To DV.Count - 1 lbSearchResults.Items.Add(DV.Item(IX)("ID")) Next If DV.Count = 1 Then lbSearchResults.SelectedIndex = 0 Dim ix As Integer = MaintenanceDataSetBindingSource.Find("ID", CInt(lbSearchResults.SelectedItem.ToString)) MaintenanceDataSetBindingSource.Position = ix Else lbSearchResults.Visible = True lbSearchResults.BringToFront() End If Else ' Display a message box noting the search criteria is not found. MeMsgBoxNoSearch.ShowDialog() End If End If Cursor = Cursors.Default End Sub Private Sub lbSearchResults_SelectedIndexChanged(sender As Object, e As EventArgs) Handles lbSearchResults.SelectedIndexChanged Dim ix As Integer = MaintenanceDataSetBindingSource.Find("ID", CInt(lbSearchResults.SelectedItem.ToString)) MaintenanceDataSetBindingSource.Position = ix lbSearchResults.Visible = False End Sub
Я ищу, чтобы вернуть результаты, основанные на столбце REPAIR_DATE.
Что я уже пробовал:
Я попытался переопределить «ix as Integer» на «ix as Date» и изменить «CInt (lbSearchResults.SelectedItem.ToString)» на «CDate (lbSearchResults.SelectedItem.ToString)», и это значение типа «integer» невозможно. преобразовано в 'date' "Я все еще новичок в VB и не уверен, как правильно вернуть результаты REPAIR_DATE, а не целые числа. Я получаю результаты по дате в моем списке (когда я использую REPAIR_DATE в качестве поля сортировки, но с кодом, установленным, как у меня выше, но при нажатии на один из возвращенных результатов для загрузки этой записи это приводит к тому, что программа прервать работу с указанной выше ошибкой, главным образом потому, что он пытается вернуть число, а не дату. Я понимаю, почему это не удается, я просто не знаю, как исправить.