Witam. Tworzę sobie mały programik którzy korzysta z bazy danych. Jednym z jego funkcji będzie pobieranie danych z poszczególnych tabel i wyświetlanie ich w dataGridView.
Oto przykładowy kod który wczytuje dane z jednej tabeli do dataGridView:
private void readGamesToolStripMenuItem_Click(object sender, EventArgs e)
{
ShopServer.OpenConnection();
ShopServer.dataTable.Clear();
ShopServer.ReadData(Table.Games, "*");
ShopServer.dataTable.Load(ShopServer._reader);
dgv_DataReaderTable.Refresh();
rtb_Logs.AppendText(ShopServer.LogManager.AddLog(LogText.readGamesData + "\n"));
ShopServer.CloseConnection();
}
Problem pojawia się kiedy chcę wczytać dane raz z jednej tabeli raz z drugiej. W tym celu chciałem wyczyścić zawartość dataGridView przed pobraniem kolejnego zestawu danych. Próbowałem dgv.Rows.Clear(), dgv.Columns.Clear(), próbowłem ustawiać dgv.DataSource = null. To są rozwiązania które już szukałem w internecie jednak nie przynosiły oczekiwanego rezultatu.
Byłbym wdzięczny za pomoc w rozwiązaniu tego problemu.Poniżej rzucę jeszcze moją metodę która wczytuje dane do SqlReadera
public void ReadData(string table, string columns)
{
_selectCommand.CommandText = string.Format("SELECT {0} FROM {1}", columns, table);
_selectCommand.CommandType = CommandType.Text;
_selectCommand.Connection = _connection;
_reader = _selectCommand.ExecuteReader();
}