Logo

C# Otopark Takip Otomasyonu Access Versiyonu Kodları

C# Otopark Takip Otomasyonu Access Versiyonu Kodları


C# Otopark Takip Otomasyonu Access Versiyonu Kodları

Merhaba arkadaşlar güzel bir örnekle daha sizlerleyim.C# Otopark Takip Otomasyonu. Access ile örnekler arayanlar.Projeler için fikir edinmek isteyenler için kullanışlı bir uygulama.Basit kodlama ile sizlerin gelişimine yardımcı bir örnek olacağına inanıyorum.Yakında SQL versiyonunu da paylaşacağım.


Proje de kullanılanlar

  • Access veri tabanı
  • Araç çıkışı için listeleme yapan Combobox ve park edilecek yeri seçmek için combobox
  • Araçların yerlerini ve park yerlerinini numaraların gösteren butonlar
  • Plaka ve araç sahibi girişi için textboxlar
  • Aracın giriş saatini listeleyen label
  • Kodların açıklaması mevcuttur.

Dikkat : Bu uygulama geliştirme amacındadır.Herkes kullanabilir ve kodlamasını çözebilir düzeydedir.Programın başka bir web sitesi,kurum ve kuruluşta paylaşılması durumunda yasal işlem başlatılır.Programın paylaşım amacı eğitim amaçlıdır.

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 Otopark_Otomasyonu
{
    public partial class Form_Otopark : Form
    {
        public Form_Otopark()
        {
            InitializeComponent();
        }
        string bagcum = "Provider=Microsoft.Jet.OleDb.4.0;Data Source=c:otoparkotomasyonu.mdb"; // otoparkotomasyonu.mdb veri tabanımızı tanımladık
        // global bağlantı değişkenlerimiz
        OleDbConnection bag;
        OleDbConnection con;
        OleDbDataAdapter da;
        OleDbCommand cmd;
        OleDbDataReader dr;
        DataTable dt;
        void listele() // comboboxlara veri tabanından verileri çekiyoruz
        {
            bag = new OleDbConnection(bagcum);  // burada bağlantıyı oluşturduk ve açtık
            bag.Open();
            da = new OleDbDataAdapter("select * from parkyerleri where durum = 'Boş'", bag); // park yerleri tablosunda durumu boş olanları
            dt = new DataTable();
            da.Fill(dt);
            comboBox_Nereye.DataSource = dt; // comboBox_Nereye adlı comboya getiriyoruz
            comboBox_Nereye.ValueMember = "id";
            comboBox_Nereye.DisplayMember = "id";
            bag.Close();
            bag = new OleDbConnection(bagcum);  // burada bağlantıyı oluşturduk ve açtık
            bag.Open();
            // Burda da durumu dolu olanları ve park_edilen_yeri park yerleri tablosunda id ye eşit olanları comboBox_Cikan_Arac combosuna listeledik.
            da = new OleDbDataAdapter("select * from parkyerleri,arac where parkyerleri.durum = 'Dolu' and arac.park_edilen_yer=parkyerleri.id", bag);
            dt = new DataTable();
            da.Fill(dt);
            comboBox_Cikan_Arac.DataSource = dt;
            comboBox_Cikan_Arac.ValueMember = "id";
            comboBox_Cikan_Arac.DisplayMember = "arac_plaka";
            bag.Close();
        }
        void yenile() // yenile fonksiyonumuz
        {
            foreach (Control item in panel3.Controls) // panel3 teki tüm elemanları gez
            {
                if (item is Button) // buton olanların
                {
                    if (item.Name.ToString()!= "button_programi_kapat") // Sağ üstteki kapat butonu hariç
                    {
                        item.BackColor = Color.DarkSlateGray; // arkaplanını DarkSlateGray
                        item.ForeColor = Color.DarkGray; // yazı rengini DarkGray
                        item.Text = item.Name.ToString(); // üstündeki yazıyı namesi olarak değiştir.
                        // namesi dediğim burda park yerleri tablosunda ki A1,A2 gibi numaralar
                    }
                }
            }
            con = new OleDbConnection(bagcum);
            con.Open();
            cmd = new OleDbCommand("select * from arac", con); // arac tablosundaki bilgileri getir
            dr = cmd.ExecuteReader(); // bilgileri datareader ile oku
            while (dr.Read())// bilgileri datareader ile oku
            {
                foreach (Control item in panel3.Controls) // panel3 teki her iteme bak
                {
                    if (item is Button)
                    {
                        if (dr["park_edilen_yer"].ToString() == item.Name.ToString()) // eğer veritabanında park_edilen_yer ekrandaki butonlardan birinin namesine eşitse
                        {
                            item.BackColor = Color.Maroon; // arkaplanını Maroon
                            item.ForeColor = Color.FloralWhite; // arkaplanını Maroon
                            item.Text = dr["arac_plaka"].ToString(); //o butonunu üstündeki yazıyı plakaya çevir
                        }
                    }
                }
            }
            con.Close();
        }
        private void Form_Otopark_Load(object sender, EventArgs e)
        {
            listele();
            // form açılırken listele ve yenile fonk. çağırdık
            yenile();
            foreach (Control item in panel3.Controls) // panel 3 te ki butonlara tıklama eventı verdik
            {
                if (item is Button)
                {
                    if (item.Name.ToString() != "button_programi_kapat") // kapat butonu hariç
                    {
                        item.Click += butonlara_tıklanınca; // tüm butonlara tıklama eventı verdik
                    }
                }
            }
        }
        private void butonlara_tıklanınca(object sender, EventArgs e) // butonlara tıklanınca
        {
            Button b = sender as Button; // hangi butona tıklantığını tespit ettik
            if (b.BackColor==Color.DarkSlateGray) // arkaplanı DarkSlateGray yani oraya park edilmemişse
            {
                for (int i = 0; i < comboBox_Nereye.Items.Count; i++) // combobox_nereye combosunda
                {
                    comboBox_Nereye.SelectedIndex = i;
                    if (b.Name.ToString() == comboBox_Nereye.SelectedValue.ToString()) //seçilen butonun namesi atıyorum A1 comboboxta varsa onu seçili hale getiriyoruz
                    {
                        comboBox_Nereye.SelectedIndex = i;
                        break;
                    }
                } // yani bu komut tıkladığın butonu comboboxta seçiyor
            }
            else
            {
                for (int i = 0; i < comboBox_Cikan_Arac.Items.Count; i++)
                {
                    comboBox_Cikan_Arac.SelectedIndex = i;
                    if (b.Name.ToString() == comboBox_Cikan_Arac.SelectedValue.ToString())
                    {
                        comboBox_Cikan_Arac.SelectedIndex = i;
                        break;
                    }
                }// yani bu komut tıkladığın butonu comboboxta seçiyor tabi buda sadece arkaplanı Maroon olanlar için
            }
        }
        private void button_aracgirisi_Click(object sender, EventArgs e) // araç girişi yap butonuna tıklandığında
        {
            if (textBox_plaka.Text != "" || textBox_arac_sahibi.Text != "") // textboxlar boş değilse
            {
                try
                {
                    con = new OleDbConnection(bagcum);
                    con.Open();
                    cmd = new OleDbCommand("insert into arac(arac_plaka, arac_sahibi, arac_giris_saati, park_edilen_yer)values('" + textBox_plaka.Text.Trim() + "','" + textBox_arac_sahibi.Text.Trim() + "','" + DateTime.Now.ToShortDateString() + " " + DateTime.Now.ToLongTimeString() + "','" + comboBox_Nereye.SelectedValue.ToString() + "')", con);
                    cmd.ExecuteNonQuery();
                    // veri tabanına ekle textboxtaki bilgileri
                    con.Close();
                    con = new OleDbConnection(bagcum);
                    con.Open();
                    // eklediğimiz yerin yani park edilen numaranın boş mu dolu mu durumunu dolu yaptık
                    cmd = new OleDbCommand("update parkyerleri set durum='Dolu' where id='" + comboBox_Nereye.SelectedValue.ToString() +"'", con);
                    cmd.ExecuteNonQuery();
                    con.Close();
                 }
                  catch (Exception ex)
                  {
                      MessageBox.Show("Hata oluştu" + ex);
                  }
                textBox_arac_sahibi.Text = "";
                textBox_plaka.Text = "";
                yenile();
                listele();
            }
            else MessageBox.Show("Boş alan bırakmayınız. ");
            listele();
            yenile();
        }
        private void button_arac_cikisi_Click(object sender, EventArgs e)
        {
            con = new OleDbConnection(bagcum);
            con.Open();
            cmd = new OleDbCommand("delete from arac where arac_plaka='" + comboBox_Cikan_Arac.Text + "'", con);
            cmd.ExecuteNonQuery();
            //arac tablosundan çıkış yaptığımız plakalı aracı sildik
            con.Close();
            con = new OleDbConnection(bagcum);
            con.Open();
            // park çıkışı yapılan yerin boş mu dolu mu durumunu Boş yaptık
            cmd = new OleDbCommand("update parkyerleri set durum='Boş' where id='" + comboBox_Cikan_Arac.SelectedValue.ToString() + "'", con);
            cmd.ExecuteNonQuery();
            con.Close();
            yenile();
            listele();
        }
        private void comboBox_Cikan_Arac_SelectedIndexChanged(object sender, EventArgs e)
        {
            con = new OleDbConnection(bagcum);
            con.Open();
            //arac saatini getirmek için aracların bilgilerini çektik
            cmd = new OleDbCommand("select * from arac where arac_plaka='" + comboBox_Cikan_Arac.Text + "'", con);
            dr = cmd.ExecuteReader();
            while (dr.Read())
            {
                label_arac_giris_saati.Text = "Araç Giriş Saati \n" + dr["arac_giris_saati"].ToString(); // label arac saatine aracın saatini çektik
            }
            con.Close();
        }
        private void button_programi_kapat_Click(object sender, EventArgs e)
        {
            this.Dispose(); // programı kapat butonu
        }
    }
}


Yorumlar