Jeśli ktoś z was często w swojej pracy używa wielu różnych baz danych i wyświetla je w datagrid napewno zauważył już, że czasem tekst który przechowywany jest w komórce datagrid (lub textboxie) wypełniany jest spacjami do końca jego wielkości. Czyli jeśli mamy w naszej bazie danych zmienna która przechowuje tekst o długości 1000 znaków a wpiszemy tylko jedno słowo o długości 7 liter nasz tekst będzie uzupełnione o spacje do 1000 znaków, trochę to irytujące i ciężko się tego pozbyć :/
Wygląda to tak jak na obrazku powyżej. Z pomocą przychodzi nam kod, ktory umieszczamy w form_load:
Dla datagrid
For i As Integer = 0 TO odbiorcaDataGridView.Rows.Count - 1 Dim d As String d = odbiorcaDataGridView.Rows(i).Cells(0).Value While InStr(d, " ") d = Replace(d, " ", "") End While odbiorcaDataGridView.Rows(i).Cells(0).Value = d Next
Dla Textboxa
Dim s As String s = OpisTextBox.Text While InStr(s, " ") s = Replace(s, " ", "") End While OpisTextBox.Text = s End Sub
Sztuczka ta usuwa podwójne spacje z naszego datagrid albo textbox i zamienia je na „” 😛
Kolejnym sposobem bardziej wydajnym ale narzucającym ograniczenia jest ucięcie spacji w Designerze. Podczas projektowania naszej tabeli używamy opcji RTRIM albo LTRIM.
SELECT LTRIM(nazwa) as nazwa, id, RTRIM(dostawca) as dostawca FFROM dostawcy
Jest to dobry sposób ale narzuca jedno ograniczenie. Jeśli zastosujemy tabele do edycji komórka która jest potraktowana opcją RTRIM albo LTRIM nie może być edytowana zmieniana albo zapisana.