Form tasarım yandaki gibi olacaktır...
Hazırlayacağımız veritabanı ise yandaki gibi olacaktır...
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...
}
}
}