problem z odczytanie wartości tabeli

0

Cześć,

mam problem.. chciałbym odczytać wartość z konkretnej tabeli i konkretnej komórki robie to na zasadzie mouse doubleclick z datagridview -> chciałbym wyświetlić konkretną komórke w texbox1
mój kod. Może ktoś coś doradzi..

int ile = dgvpacjent.SelectedRows.Count;
                if (ile > 0)
                {
                    string numery = "";

                    for (int i = 0; i < ile; i++)
                        numery += dgvpacjent.SelectedRows[i].Cells[0].Value.ToString() + ",";
                    numery = numery.TrimEnd(',');

                    string connstring = String.Format("Server=localhost;Port=5432;User Id=postgres;Password=postgres;Database=postgres;");
                    NpgsqlConnection conn = new NpgsqlConnection(connstring);
                    conn.Open();
                    string sql = "SELECT * FROM pacjent WHERE numer IN( " + numery + ")";
                    NpgsqlDataAdapter da = new NpgsqlDataAdapter(sql, conn);
                    ds.Reset();
                    da.Fill(ds);



                    dt = ds.Tables[9];
                    textBox1.Text = dt.ToString();

                    conn.Close(); 

problem poojawia się tutaj

  dt = ds.Tables[9];
                    t_obserwacje.Text = dt.ToString();

wyskakuje mi, że nie ma tabeli nr 9.. coś porypałem..

0

zobacz może tak:

 string numery = "";

                    for (int i = 0; i < ile; i++)
                        numery += dgvpacjent.SelectedRows[i].Cells[0].Value.ToString() + ",";
                    numery = numery.TrimEnd(',');


                    NpgsqlCommand pobierz = new NpgsqlCommand();
                    pobierz.Connection = new NpgsqlConnection("Server=localhost;Port=5432;User Id=postgres;Password=postgres;Database=postgres;");
                    pobierz.CommandText = "SELECT * FROM pacjent WHERE numer IN( " + numery + ")";
    
                    pobierz.Connection.Open();
                    NpgsqlDataReader odczyt = pobierz.ExecuteReader();
                    odczyt.Read();

                    textBox1.Text = odczyt.GetString(9);

                    pobierz.Connection.Close();

nie jest to najlepsze rozwiązanie ale powinno działać.

0

@cupit należałoby sprawdzić czy Read() się powiódł, bo jak nie, to nie ma czego przeczytać

@jasiek09 widać że nie wiesz co to DataSet, DataTable etc.
łopatologicznie:
DataSet, to m.in. zbiór tabel w kodzie, nie w bazie, mogą one różnić się strukturą od tych w bazie
ty pobrałeś z bazy danych jakiś podzbiór rekordów z tabeli (jednej)
więć adapter w DataSet stworzy jedną tabelę, kolekcje i tablice indeksowane są od 0 (upraszczam, bo można zrobić żeby nie były), więc w kolekcji tabel w DataSet masz jedną tabelę myDataSet.Tables[0], która ma kolekcję wierszy, kazdy wiersz ma ileś kolumn, tyle co liczba kolumn w kolekcji Columns tabeli

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