Temat: Pomoc C# + mysql + textboxy
Po pierwsze, w ten sposób (przez bezpośrednie podstawienie do kwerendy SQL zawartości pola tekstowego) zrobiłeś sobie "edytor bazy danych". Zapoznaj się z tematem SQL injection, a następnie - jak uniknąć tego rodzaju problemów. Dzięki temu unikniesz potencjalnie paskudnych problemów, gdy ktoś obcy (inny użytkownik) zacznie eksperymentować. Mówiąc krótko: można w ten sposób usuwać i zmieniać zawartość rekordów (fałszowanie danych), usunąć pojedyncze tabele, a w przypadku źle zabezpieczonej bazy danych (praca na wysokich uprawnieniach, nierzadko administratora) - dobrać się do całej bazy danych (serwera).
Po drugie - do pola tekstowego trzeba podstawić pojedynczą wartość, a nie cały obiekt datasetu (kolekcji danych).
Jeśli po prostu ma się przepisać wartość z grida i jest to jedyna wartość w tym gridzie, to:
this.textBox3.Text = this.dataSet1.Tables[0].Rows[0]["ID"].ToString();
(dopasuj do tego co masz w datasecie)
Jeśli tych wartości jest więcej i chodzi o pokazanie zawartości zaznaczonej wartości w gridzie, to:
private void dataGridView1_CellClick(object sender, DataGridViewCellEventArgs e)
{
this.textBox3.Text = ((DataTable) this.dataGridView1.DataSource).Rows[e.RowIndex][e.ColumnIndex].ToString();
}
A jeśli nie potrzebujesz tego całego grida, bo pobierasz tylko jedną konkretną wartość z bazy danych (marnotrawstwo zasobów), to:
1. użyj MyCommand .ExecuteScalar().ToString() - pobierze wartość z 1 wiersza i 1 kolumny
2. poczytaj o DataReader, który jest metodą szybkiego dostępu do danych w trybie tylko do odczytu. Kod będzie wyglądał mniej więcej tak (nie mam teraz czasu tworzyć bazy danych i podpinać się dla testu)
MySqlDataReader reader = MyCommand.ExecuteReader();
// jeśli jest więcej rekordów, to if zamień na while
if (reader.NextResult())
{
this.textBox3.Text = reader.GetString(0);
}
reader.Close();
PS: jeśli piszesz aplikacje okienkowe, zapisz się także do grupy
Programiści .NET. To jest grupa bardziej dla programistów aplikacji internetowych.
Ten post został edytowany przez Autora dnia 04.03.15 o godzinie 11:59