14 Aralık 2013 Cumartesi

Veritabanı - 11... Veritabanından Combobox a Bilgi Almak...

Access veri tabanında kayıtlı olan verilerimizden bazılarını Combobox a ekleyebiliriz... Yapmak istediğimiz uygulamada Access de bulunan sütunlardan bir tanesini tamamen Comboboxa ekleyeceğiz... Aynı zamanda Comboboxdan seçim yapıldığında da Richtextboxa seçime göre diğer sütundaki bilgilerin gelmesini sağlayacağız...  

Access veritabanını aşağıdaki gibi oluşturun... Tablomuzun ismi Yeniurun olacaktır... Veritabanı adımız ise Bilsay olacaktır... 


Aşağıdaki formu oluşturunuz... Formda bir tane Combobox, bir tane Richtextbox olacaktır... 

Kodlarımıza Form_Load olayından başlayacağız... Bu sayede form açıldığında Comboboxa veriler eklenmiş olacaktır... Bu işlemleri yaparken hem comboboxa verilerin çağrılması kısmında hemde richtextboxa verilerin çağrılması kısmında benzer işlemleri kullanacağımız için metod yöntemi ile bilgileri alacağız... 

Program çalıştığı zaman aşağıdaki gibi olacaktır... Comboboxa veritabanındaki bilgiler gelecektir... Comboboxdan seçim yapıldığında ise Richtextboxa bilgiler gelecektir...

Programımızın kodları aşağıdaki gibidir;

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.Data.OleDb;

namespace WindowsFormsApplication6
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
         OleDbConnection baglanti = new OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=bilsay.accdb");
        OleDbCommand komut = new OleDbCommand();

        void veritabanisorgu(int gelenindex, string sorgu) // Metodumuz...
        {
            baglanti.Open();
            komut.CommandText = sorgu;
            komut.Connection = baglanti;

            OleDbDataReader oku = komut.ExecuteReader(); //Aldığımız bilgilerimizi depomuza atıyoruz...

            if (gelenindex==0) // Combobox için 0, Richtextbox için 1 değerini gönderiyoruz... 
            {
                while (oku.Read()) //Comboboxa verileri ekliyor...
                    comboBox1.Items.Add(oku[0].ToString());
            }
            else if (gelenindex==1) // Richtextbox için çalışacak kısım... 
            {
                while (oku.Read()) // Richtextbox a verileri ekliyor... 
                   richTextBox1.Text= oku[1].ToString();
            }
            oku.Close();
            baglanti.Close(); 
        }
        private void Form1_Load(object sender, EventArgs e) // Formun hemen girişinde comboboxa verileri ekliyoruz...
        {  // Metoda gönderirken sorgu ile birlikte bir de sütun numarasını gönderiyoruz... 
            veritabanisorgu(0,"SELECT * FROM Yeniurun");
        }

        private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
        { // comboboxdan seçim yapıldıktan sonra sorguyu gönderiyoruz... 
            veritabanisorgu(1,"SELECT * FROM Yeniurun Where [Adı]='" + comboBox1.Text + "'"); 
        }
    }
}