27 Mart 2013 Çarşamba

Veritabanı - 5... Direnç Değeri Bulmak...


Form tasarım yandaki gibi olacaktır... 









Çalışması yandaki gibidir... 










 
Hazırlayacağımız veritabanı ise yandaki gibi olacaktır... 














using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Data.OleDb; // Access veri tabanı kullanacağız... OLEDB = Access veritabanı... 

namespace arama_6
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        // İki önemli satır... önce kullanacağımız veritabanını çağırıyoruz... 
        // Sonra da SQL sorgumuzu yapacağımız değişkenimizi tanımlıyoruz... 
        OleDbConnection baglanti = new OleDbConnection("Provider=Microsoft.Jet.Oledb.4.0;Data Source=direnc.mdb");
        OleDbCommand komut = new OleDbCommand();
        private void Form1_Load(object sender, EventArgs e)
        {
            baglanti.Open(); // Veritabanı bağlantılarını açıyoruz... 
            komut.CommandText = "Select * From renk"; // Renk isimli tablomuzu çağırıyoruz... 
            komut.Connection = baglanti; // SQL sorgusu ile veritabanımızı ilişkilendiriyoruz... 

            OleDbDataReader oku = komut.ExecuteReader(); // Dönen verileri okumaya başlıyoruz... 

            while (oku.Read()) // Verileri bir while döngüsü ile comboboxlara aktarıyoruz... 
            { // Kısaca renk isimlerini veritabanından alıp comboboxlara aktarıyoruz... 
                comboBox1.Items.Add(oku[1].ToString());
                comboBox2.Items.Add(oku[1].ToString());
                comboBox3.Items.Add(oku[1].ToString());
            }

            oku.Close(); // Bağlantıları kapatıyoruz... 
            baglanti.Close();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            // Comboboxtaki renk isimlerinin karşılığındaki sayıları bulmak için gonder isimli metoda verileri gönderiyoruz... 
            int renk1 = gonder(comboBox1.Text);   // Dönen verileri renk1, 2, 3 isimli değişkenlere alıyoruz... 
            int renk2 = gonder(comboBox2.Text);   // Dönen verilerin hepsi renklerin karşılığındaki sayılar olmuş oluyor... 
            int renk3 = gonder(comboBox3.Text);

            // Buradaki işlem ise direnç değerlerini bulmak için... Hesaplama yapılıyor ve sonuç gösteriliyor...  
            double sonuc = (renk1 * 10 + renk2) * Math.Pow(10, renk3);
            label4.Text = label4.Text +" " +sonuc.ToString() + " ohm"; 
        }

    int gonder (string kontrol)
    {
        // Bu metodun amacı seçilen rengin karşılığındaki sayıyı bulmaktır... 
        baglanti.Open();
        // Veritabanında seçilen renge karşılık gelen sayı alınıyor... 
        komut.CommandText = "Select * From renk Where Renk='" + kontrol + "'"; 
        komut.Connection = baglanti;

        OleDbDataReader sec_renk = komut.ExecuteReader();
        sec_renk.Read(); // While kullanımı çoklu veri varsa geçerlidir... Tek veri için bu şekil bir kullanım olabilir... 
        int r1 = Convert.ToInt16(sec_renk[0]); // [0] değerini alıyoruz çünkü ilk hücrede sayılar... 

        sec_renk.Close();
        baglanti.Close();

        return r1;  // Geriye değer döndermiş oluyoruz... Sayı gidiyor... 
    }
    }
}