No w takim przypadku ReadLine się nie przyda...
Nie przechwytywałem jeszcze danych z RS, ale z tego co piszesz wnioskuję, że każdy str to: "XX.XXX\t X.XXX" (między wyrażeniami dwie spacje)
W takim przypadku spróbuj:
string str = "30.000\t 0.169";
string strGotowy = str.Replace("\t ", null); \\jeśli między wyrażeniami jest jedna spacja to dajesz "\t"
string[] words = strGotowy.Split();
MessageBox.Show(words[0]); //albo np. wpisanie words[0] do kolumny pierwszej w bazie
MessageBox.Show(words[1]); //albo np. wpisanie words[1] do kolumny drugiej w bazie
...jeśli otrzymany str to coś innego niż "XX.XXX\t X.XXX" to Replaceuj wszystko tak, aby strGotowy wyglądał tak: "XX.XXX X.XXX", wtedy wszystko ładnie się podzieli i pierwsze wyrażenie będziesz pobierała jako words[0] a drugie jako words[1] i będziesz mogła z tym robić co Ci się podoba. Odnośnie tych dwóch pierwszych linijek to też możesz wykorzystać Replace zastępując je null
em.
Jeśli dane dostajesz dokładnie tak jak napisałaś ("20.000\t 0.169 20.001\t 0.177 20.003\t"), to wykorzystaj jeszcze words[2] i words[3].
...a jeśli dostajesz dane tak: "20.000\t 0.169 20.001\t 0.177 20.003\t 20.000\t 0.169 20.001\t 0.177 20.003\t ... i nie wiadomo ile jeszcze danych dostanę", to będziesz mogła wykorzystać modulo indeksu (if index słowa mod 2 == 0 to wrzucam do kolumny pierwszej, else do drugiej), ale to Ci rozpiszę jeśli potwierdzisz, że dane dostajesz właśnie w ten sposób :).