Artık bir ListBox 'u bir SQLite veritabanından verilerle doldurmayı öğrendin. Bu derste, bir TextBox 'ı bu ListBox ile bağlayarak bilgimizi genişleteceğiz. Bu bağlantı, bilgiler üzerinde değişiklik yapmanı, silmeni veya yeni değerler eklemeni sağlar. Ayrıca, ListBox'taki seçimi izlemeyi ve seçilen değeri TextBox'ta göstermeyi öğreteceğiz. Böylece uygulamanı daha etkileşimli ve kullanıcı dostu hale getirebilirsin.
En önemli bulgular
- Bir TextBox'u bir ListBox ile bağlayarak seçimi dinamik olarak gösterebilirsin.
- SQLite veritabanı kullanarak verilerini kalıcı bir şekilde saklayabilir ve alabilirsin.
- İstenmeyen istisnalardan kaçınmak için hata önleme önlemleri uyguluyoruz.
Adım Adım Kılavuz
Öncelikle, TextBox ve ListBox arasındaki bağlantıyı nasıl kuracağımıza bir göz atacağız:
1. ListBox'taki seçimleri sorgulama
ListBox'taki seçimi izlemek için ilgili olaylar için kod eklememiz gerekir. Öncelikle, ListBox'ta hangi öğenin seçili olduğunu bilmemiz gerekiyor.

Bunun için, ListBox'ı doldurduğumuz yöntemden SQLiteCommand'u kopyalıyoruz. Bu kodu uygun yere ekliyoruz ve veritabanımızdan seçimi getiren bir SQL ifadesi ile tamamlıyoruz. SQL ifadesi şöyle görünebilir: SELECT ID, Automarke FROM Automarken WHERE ID = @ID, burada @ID parametremiz için bir yer tutucudur.
2. SQL sorgusuna parametre eklemek
Bir sonraki adım, SQL sorgusu için parametreyi ayarlamaktır. Burada doğru otomobili seçmek için birincil anahtar (Primary Key) kullanılır.
Ardından, ListBox'tan seçilen otomobilin ID'sini alarak komutu optimize ediyoruz. Bu, listBox.SelectedValue çağrılmasıyla yapılır. Şimdi bu parametreyi sorguya ekliyoruz.

3. DataTable oluşturma ve doldurma
Artık SQL ifademiz olduğuna göre, sorguları işlemek için bir DataTable oluşturmalıyız. Bu DataTable'ı myDataTable olarak adlandırıyoruz ve ardından SQL sorgumuzun sonuçlarını başlatmak için SQLiteDataAdapter'ı ekliyoruz.

DataTable doldurulduğunda, TextBox'u seçilen otomobilin değeriyle doldurabiliriz.

4. Seçilen otomobili TextBox'ta gösterme
DataTable'daki değeri TextBox'a koymak için, DataTable'ın ilk kaydını alıyoruz. myDataTable.Rows[0]["Automarke"].ToString() kullanarak sonucu TextBox'a koyuyoruz.
5. Hata yönetimi uygulama
Uygulama çalıştırılırken hata oluşmadığından emin olmak için bir hata yönetimi yerleştirmemiz gerekir. Bu, sorgudan önce ListBox'ta bir öğe seçilip seçilmediğini kontrol ederek gerçekleştirilir.
Bunun için basit bir koşul kullanıyoruz: Eğer myListBox.SelectedValue == null ise, metodu iptal ediyoruz. Bu önlem, Null referansları almamızı sağlar ve uygulamanın kararlı kalmasını sağlar.

6. Fonksiyon testleri yapma
Yukarıdaki adımları uyguladıktan sonra, uygulamayı test etmek önemlidir. Programı başlatın ve başlangıçta ListBox'taki ilk kaydın otomatik olarak TextBox'ta gösterilip gösterilmediğini kontrol edin.

Artık farklı otomobiller arasında geçiş yaptığınızda, TextBox'un dinamik olarak güncellendiğini ve ilgili değeri gösterdiğini görmelisiniz.

Artık TextBox ve ListBox bağlantısının temellerini ve kodunu anladığınıza göre, uygulamanızı daha da optimize edebilirsiniz. Bir sonraki adımda, yeni otomobilleri bir buton aracılığıyla veritabanına nasıl ekleyeceğinizi öğreneceğiz.
Özet – C#'ta ListBox ve TextBox: Verileri dinamik olarak bağlama
Bu kılavuzda, bir TextBox'u bir ListBox ile nasıl bağlayabileceğinizi ve bunların dinamik etkileşimliliğini nasıl gerçekleştirebileceğinizi öğrendiniz. Bu kavram, kullanıcı uygulamaları oluşturmanıza yeni yollar açar; hem bilgilendirici hem de kullanıcı dostu olabilir.
Sıkça Sorulan Sorular
TextBox güncellenmiyorsa ne yapmalıyım?ListBox'ın doğru değeri verip vermediğini ve DataAdapter'ın doğru yapılandırılıp yapılandırılmadığını kontrol edin.
Yeni bir otomobil markası nasıl eklerim?Bunu bir buton ekleyerek yapacağız; böylece otomobilleri veritabanına ekleyebilirsiniz.
DataTable çıktılarını neden string olarak cast ediyoruz?TextBox'taki değerin doğru şekilde metin olarak görüntülenmesini sağlamak için, bunu bir String'e dönüştürmemiz gerekir.