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
1 2 3 4 5 6 7 8 |
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
1 2 3 4 5 6 7 |
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.
1 2 |
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.