Wyszukiwanie pomiędzy dwoma datami w datagrid

0

Zrobiłem tabelę DGV i chcę wyszukać po dacie od start daty do stop daty wszystkie zawarte w tabeli wiersze. Zrobiłem to kodem

Me.Table1BindingSource.Filter = "DataAwizacji >= '" & MaskedTextBox1.Text & "' and DataAwizacji <= '" & MaskedTextBox2.Text & "'"

user image

Funkcja ta działa ale jak wpisuję tylko wartości w przedziale tego samego miesiąca, jak miesiąc jest inny to wyszukuje jakieś badziewia które nie powinien pokazywać. Zobaczcie na przykładzie poniższego zdjęcia

user image

Wyraźnie widać że funkcja wyszukuje poprawnie ciąg pierwszych dwóch znaków czyli do "-" później zaczynają się jaja. Jak to naprawić ?
Próbowałem przekształcić wartości do typu String ale efekt był ten sam. Próbowałem zamiast maskedtextbox użyć zwykłęgo textboxa jak również innego separatora ale bez skutku. Data awizacji jest wpisywana ręcznie do DGV z użyciem maskexdtextbox

0

Może skorzystasz z typu DateTime zamiast string?

0

próbowałem z datetime to nieważne co wpiszę po wciśnięciu szukaj nie pokazuje mi nic, coś jest nie tak

0

Jakiego używasz wzorca? Z kodu wynika, że żadnego ale różnie ludzie piszą. Albo rzutowanie na typ DateTime albo parsowanie na ten typ albo własny algorytm ze stringiem. Przecież o to chodzi w te klocki c'nie? Najłatwiej chyba oprzeć dane na typie DateTime i potem już normalnie porównywać.

0

To źle próbowałeś. Jak chcesz prawidłowych wyników skoro porównujesz Stringi.
http://www.dotnetheaven.com/article/compare-two-dates-using-datetime-in-vb.net

0

Data jest wpisywana przeze mnie przez zwykłą maskę textboxu, --____ i tyle
Link do strony wyżej który podałeś nic nowego nie wnosi typ result oblicza różnicę daty, a mi tabela datagrid ma pokazać wartości pomiędzy jedną a druga. Wynik result nie pokaże mi wszystkich różnic między datami jako wyświetlone wiersze

0

Ale tamten link wnosi dużo...
Bawisz się w porównywanie tych stringów zamiast skorzystać z gotowych metod do porównywania dat.

Przeparsuj sobie datę początkową i końcową na DateTime, a później w pętli lecisz po każdym wpisie, parsujesz datę awizacji na DateTime i sprawdzasz czy znajduje się pomiędzy wprowadzonymi datami.

0

Ja proponuje wrócić do programików konsolowych aby porządnie zrozumieć logikę programowania. Są pewne rzeczy których nie przeskoczysz.

0

no to chyba tego nie napisze

1 użytkowników online, w tym zalogowanych: 0, gości: 1