Jak wyswietlic dane w DataGridView C#

0

Witam mam prostą aplikacje połączoną z bazą danych w Windows forms. Mam dodany combobox w którym wyswietla mi sie lista aktualnych tabeli w bazie danych. Teraz chciałbym dodać jeszcze przycisk i żeby po wybraniu tabeli z listy i kliknieciu wyswietliła mi sie ona w DataGridView. Niestety cos mi nie działa

Tu jest kod do wyswietlania tych nazw tabeli z bazy danych w comboboxie

Con.Open();
SqlCommand cmd = new SqlCommand("SELECT name FROM sysobjects WHERE xtype = 'U'", Con);
SqlDataReader rdr;
rdr = cmd.ExecuteReader();
DataTable dt = new DataTable();
dt.Columns.Add("name", typeof(string));
dt.Load(rdr);
wczytywanie.ValueMember = "name";
wczytywanie.DisplayMember = "name";
wczytywanie.DataSource = dt;
Con.Close();

i tu mam przycisk który ma mi wysiwetlac te dane w tym DataGridView ale nie działa. ZNaczy sie działa ale wyswietla mi tylko jedną kolumne cała zapełniona nazwa tabeli a ja chciałbym wyswietlic tabele wybrana z listy.

Con.Open();
SqlCommand cmd = new SqlCommand("SELECT @name FROM szpital.dbo.sysobjects WHERE xtype = 'U'", Con);
cmd.Parameters.Add("name", wczytywanie.SelectedValue.ToString());
SqlDataAdapter da = new SqlDataAdapter(cmd);
DataSet dt = new DataSet();
da.Fill(dt);
Dane.DataSource = dt.Tables[0];
Con.Close();

1

Chcesz wyświetlić dane z wybranej tabeli comboboxem? Twój sql jest niepoprawny.

SqlCommand cmd = new SqlCommand("SELECT * FROM szpital.dbo.@name", Con);

Niestety ale SQL nie pozwala przesłać nazwy tabel jako parametr więc masz dwie opcje:

OPCJA 1 - Stored procedure

OPCJA 2

string tableName = "moja_wybrana_tabela";
SqlCommand cmd = new SqlCommand("SELECT * FROM szpital.dbo." + tableName , Con);

Opcja dwa jest "niebezpieczna", ponieważ pozwala na SQL Injection.

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