C# ve MySQL veritabanlarıyla çalışırken, veritabanına bağlanmayı ve verileri etkili bir şekilde almayı anlamak önemlidir. Bir ComboBox’ı MySQL tablosundan gelen verilerle doldurmak, sıkça karşılaşılan bir görevdir.
Bu makalede, MySQL Connector/NET kütüphanesini kullanarak bu görevi gerçekleştiren basit bir kod parçasını oluşturacağız. MySQL kütüphanesini eklemeyi bilmiyorsanız buradaki yazıyı okumanızı öneririm.
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 | string connectionString = "Server = localhost; Database=kutuphane;Uid=root;Pwd=''"; DataTable dataTable; private void FillTurComboBox() { using (MySqlConnection connection = new MySqlConnection(connectionString)) { try { connection.Open(); string query = "SELECT * FROM turler"; MySqlCommand command = new MySqlCommand(query, connection); MySqlDataAdapter adapter = new MySqlDataAdapter(command); dataTable = new System.Data.DataTable(); adapter.Fill(dataTable); cmbTur.DataSource = dataTable; cmbTur.ValueMember = "tur_id"; cmbTur.DisplayMember = "tur_ad"; } catch (Exception ex) { MessageBox.Show(ex.Message,"Hata Oluştu"); } } } private void frmKitap_Load(object sender, EventArgs e) { FillTurComboBox(); } |
Kodlarımızı kısaca açıklayalım.
- MySQL Bağlantısının Kurulumu: İlk olarak, MySqlConnection sınıfını kullanarak MySQL veritabanına bağlantı kurarız. Bağlantı dizesi, veritabanı sunucusu, kullanıcı kimlik bilgileri ve diğer parametreler hakkında bilgi içerir ve parametre olarak geçirilir.
- Veritabanından Veri Alınması: “turler” tablosundan tüm verileri seçen bir SQL sorgu dizisi oluşturuyoruz. Bu sorgu, bir MySqlCommand nesnesi kullanılarak yürütülür. Sonuçlar, MySqlDataAdapter aracılığıyla veritabanından alınır ve sonuçlar DataTable ile doldurulur.
- ComboBox’ın Doldurulması: DataTable, ComboBox’a (cmbTur) veri kaynağı olarak atanır. ValueMember özelliği “tur_id” olarak ve DisplayMember özelliği “tur_ad” olarak belirtilir, böylece ComboBox’da uygun veri alanlarının görüntülenmesi sağlanır.
- İstisnaların İşlenmesi: Veritabanı işlemi sırasında oluşabilecek herhangi bir istisnayı ele almak için bir try-catch bloğu kullanılır. Bir istisna yakalandığında, kullanıcıya anlamlı bir hata yanıtı sağlamak için bir MessageBox ile hata iletileri görüntülenir.