napisałem taki łopatologiczny kod do wyszukiwania w wierszach.

DataSet ds = new DataSet();
ds = form.ds.Clone();
ds.Tables[0].Clear();

for (int counter = 0; counter < form.dataGridView1.Rows.Count - 1; counter++)
                    if (form.dataGridView1.Rows[counter].Cells[index].Value.ToString().Contains(form.searchphrase))
                    {
                        ds.Tables[0].Rows.Add((DataGridViewRow)form.dataGridView1.Rows[counter]);
                    }

form.ds = ds;
form.dataGridView1.DataSource = ds.Tables[0];

wiersze znajduje poprawnie ale niepoprawnie je dodaje do owego data seta(albo wyswietla)
nie wiem co zrobiłem źle, czy mógłby ktoś poprawić?

DataGridView wyświetla tyle wierszy ile powinno ale zamiast informacji które zawierały te wiersze to takie info:

DataGridViewRow {|index = x|}
gdzie x to numer wiersza w którym wystąpiła szukana fraza