Nézzük meg, hogyan lehet egy MySql adatbázist elérni grafikus felületről. A form-ra helyezzünk el egy dataGridView-t, két panelt, ezekbe 2-2db textbox-t, és 1-1 gombot. Az adatbázisból lekért adatokat a dataGridView-ban jelenítjük meg. (ki lehetne íratni akár label-re, textboxba is)
A program indításakor kapcsolódunk az adatbázishoz, és lekérjük a tábla összes adatát. A form betöltésekor lefut a Betoltes() függvény, ami frissíti a dataGridView-t.
Új adatok feltöltésénél a kék panelon található textboxok értékét mentjük el az adatbázisba. Az id autoinc. tehát azt nem kell megadni.
A sárga panel textboxaiba beírjuk az aktuális termék adatait, és a módosítás gomb lenyomásával el is mentjük az adatbázisba. Ahhoz, hogy ezt lássuk is, meghívjuk a Betolt() függvényt. A textboxok értékei annak megfelelően változnak, éppen melyik sorra kattintunk. Ehhez a dataGridView1 SelectionChanged eseményét használjuk.
Törlésnél a dataGridView1 aktuális sorának id-ja alapján azonosítjuk be a terméket.

Program
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 |
using System; using System.Data; using System.Windows.Forms; using MySql.Data.MySqlClient; namespace bolt { public partial class Form1 : Form { string kapcsolat = "server=localhost;database=bolt;uid=root;pwd=;"; public Form1() { InitializeComponent(); Betoltes(); } // adatok lekérdezése private void Betoltes() { using (MySqlConnection conn = new MySqlConnection(kapcsolat)) { try { conn.Open(); string lekerdezes = "SELECT * FROM termekek"; MySqlDataAdapter adapter = new MySqlDataAdapter(lekerdezes, conn); DataTable tabla = new DataTable(); adapter.Fill(tabla); // Betöltjük az adatokat a DataTable-be dataGridView1.DataSource = tabla; // Megjelenítjük a táblázatot } catch (MySqlException ex) { MessageBox.Show("Hiba történt: " + ex.Message); } } } private void button1_Click(object sender, EventArgs e) { Betoltes(); } // új adat felvétele private void bt_uj_Click(object sender, EventArgs e) { string nev = tb_nev.Text; if (!int.TryParse(tb_ar.Text, out int ar)) { MessageBox.Show("Hibás ár!"); return; } using (MySqlConnection conn = new MySqlConnection(kapcsolat)) { conn.Open(); string sql = "INSERT INTO termekek (nev, ar) VALUES (@nev, @ar)"; MySqlCommand cmd = new MySqlCommand(sql, conn); cmd.Parameters.AddWithValue("@nev", nev); cmd.Parameters.AddWithValue("@ar", ar); cmd.ExecuteNonQuery(); } tb_nev.Clear(); tb_ar.Clear(); Betoltes(); } // módosítás private void bt_modosit_Click(object sender, EventArgs e) { if (dataGridView1.CurrentRow == null) return; int id = Convert.ToInt32(dataGridView1.CurrentRow.Cells["id"].Value); string ujNev = tb_nevMod.Text; if (!int.TryParse(tb_arMod.Text, out int ujAr)) { MessageBox.Show("Hibás ár!"); return; } using (MySqlConnection conn = new MySqlConnection(kapcsolat)) { conn.Open(); string sql = "UPDATE termekek SET nev = @nev, ar = @ar WHERE id = @id"; MySqlCommand cmd = new MySqlCommand(sql, conn); cmd.Parameters.AddWithValue("@nev", ujNev); cmd.Parameters.AddWithValue("@ar", ujAr); cmd.Parameters.AddWithValue("@id", id); cmd.ExecuteNonQuery(); } Betoltes(); } // adat törlése private void button2_Click(object sender, EventArgs e) { if (dataGridView1.CurrentRow == null) return; int id = Convert.ToInt32(dataGridView1.CurrentRow.Cells["id"].Value); var megerosites = MessageBox.Show("Biztosan törlöd ezt a sort?", "Törlés", MessageBoxButtons.YesNo); if (megerosites == DialogResult.No) return; using (MySqlConnection conn = new MySqlConnection(kapcsolat)) { conn.Open(); string sql = "DELETE FROM termekek WHERE id = @id"; MySqlCommand cmd = new MySqlCommand(sql, conn); cmd.Parameters.AddWithValue("@id", id); cmd.ExecuteNonQuery(); } Betoltes(); } private void dataGridView1_SystemColorsChanged(object sender, EventArgs e) { } private void dataGridView1_SelectionChanged(object sender, EventArgs e) { if (dataGridView1.CurrentRow == null) return; tb_nevMod.Text = dataGridView1.CurrentRow.Cells["nev"].Value.ToString(); tb_arMod.Text = dataGridView1.CurrentRow.Cells["ar"].Value.ToString(); } } } |
