C# Otobus Otomasyonu

47 yorum
Merhaba Arkadaşlar,

Bu bölümde sıfırdan bir otomasyon yazıyor olacağız.Gerek veritabanı tasarımı gerek tablolar arası ilişki gereksede store procedure ,trigger,function ve t-sql sorgularını gerçekleştirip.Daha sonrasında C# tarafında
bunlarla alakalı otomasyon projemiz içerisinde kodlama işlemlerini gerçekleştiriyor olacağız.


Bu aşamada veri tabanı yapısı ile başlayalım.

 
Tablolar Arası İlişkiler


Video Anlatım Serisi :


Video 1:

C# Otobus Otomasyonu VeriTabani paylaşan: sinan-d-arslan-1
Video 2:


C# Otobus Otomasyonu Store Procedure Yazimi... paylaşan: sinan-d-arslan-1
Video 3 :

C# Otobus Otomasyonu Store Procedure Yazımı... paylaşan: sinan-d-arslan-1
Video 4:

C# Otobus Otomasyonu Katmanli Mimari paylaşan: sinan-d-arslan-1
Video 5:

C# Otobus Otomasyonu Modelleme paylaşan: sinan-d-arslan-1
Video 6 :

C# Otobus Otomasyonu Veritabani Modelleme Video 2 paylaşan: sinan-d-arslan-1
Video 7:

C# Otobus Otomasyonu Face Katmani paylaşan: sinan-d-arslan-1
Video 8:

C# Otobus Otomasyonu Face Sehir paylaşan: sinan-d-arslan-1
Video 9:

C# Otobus Otomasyonu Face Sefer paylaşan: sinan-d-arslan-1
Video 18:
Video 10:

Video 11:

C# Otobus Otomasyonu Ana Menu Tasarim Ekrani paylaşan: sinan-d-arslan-1
Video 12 :

Video 13:

Video 14:

Video 15:

Video 16 :

Video 17 :

Video 18 :
Video 19 :

C# Otobus Otomasyonu Sube Guncelleme ve Silme... paylaşan: sinan-d-arslan-1
Projenin Video Anlatımlarını gereken talep gelmediği için durdurmuş bulunmaktayım.Projenin tamamlanmış halini proje paylaşımları tabında yayınlıyor olacağım.İsteyen arkadaşlar ilerleyen aşamalarda indirebilir.Video anlatımların ve proje paylaşımlarının devam edebilmesi noktasında yorumda bulunabilir yada mail adresimden bana ulaşabilirsiniz.Saygılarımla Sinan Arslan
Proje İndirme Linki için Tıklayınız

47 yorum :

Yorum Gönder

Soru Görüş önerileriniz için gmail plus üzerinden + layın müsait olduğumda mutlaka yanıt dönüyor olacağım.

MS SQL Function Kullanımı

Hiç yorum yok
Merhaba Arakdaşlar ,


Bu bölümde mssql tarafında function kullanımına bakıyor olacağız.Daha sonrasında yazdığımız function 'ı visüal studio içinde bir örnek uygulama yazarak nasıl kullanabilineceğine bakıyor olacağız.İlk olarak function ile store procedure arasındaki farklara bakalım.

Function ile store proc arasındaki temel farklar, bir store proc belirli bir işlem sonucunda herhangi bir tabloya baglı bir deger döndürebileceği gibi tabloadan bağımsız bir değerde döndürebilir.Function ise herhangi bir sorgu ifadesi içinde kullanılabilir .Buda bize aldığı parametreye değer atayıp kullanabilmemizi sağlar .

Ve kodlama işlemindede farklılıkları görelim:

Store Procedure Kullanımı

 public static int CalisanEkle(Entity.Calisan calisan)
       {
           SqlConnection cnn = new SqlConnection(Util.ConnectionString);
           SqlCommand cmd = new SqlCommand("CalisanEkle", cnn);
 
           cmd.CommandType = CommandType.StoredProcedure;
 
           cmd.Parameters.AddWithValue("@Ad", calisan.Ad);
           cmd.Parameters.AddWithValue("@Soyad", calisan.Soyad);
           cmd.Parameters.AddWithValue("@Telefon", calisan.Telefon);
           cmd.Parameters.AddWithValue("@Email", calisan.Email);
           cmd.Parameters.AddWithValue("@SubeID", calisan.SubeID);
           cmd.Parameters.AddWithValue("@EvAdresi", calisan.EvAdresi);
           cmd.Parameters.AddWithValue("@KullaniciAdi", calisan.KullaniciAdi);
           cmd.Parameters.AddWithValue("@Sifre", calisan.Sifre);
           cmd.Parameters.AddWithValue("@Yoneticimi", calisan.Yoneticimi);
           cmd.Parameters.AddWithValue("@CalisaTipID", calisan.CalisaTipID);
 
           return Util.Yurut(cmd);
       }
Function Kullanımı 

 protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                Hesapla();
            }
        }
 
        private void Hesapla()
        {
            SqlConnection cnn = new SqlConnection("Server=.;Database=DuffDunnAyakkabi;trusted_connection=true");
            SqlDataAdapter adp = new SqlDataAdapter("Select UrunAdi,dbo.KDVHesap(Fiyat) as KDVTUTARI from Urun", cnn);
            DataTable dt = new DataTable();
            adp.Fill(dt);
            dgvSonuc.DataSource = dt;
            dgvSonuc.DataBind();
        }
Sonuc :

Video Anlatım




MS SQL Function Kullanimi paylaşan: sinan-d-arslan-1

Hiç yorum yok :

Yorum Gönder

Soru Görüş önerileriniz için gmail plus üzerinden + layın müsait olduğumda mutlaka yanıt dönüyor olacağım.

Nesne Yönelimli Programlama OOP Temelleri

Hiç yorum yok
Merhaba Arakadaşlar,


Bu bölümde oop temellerine değiniyor olacağız.Bu aşamada aşağıda yaptığımız örnek uygulama içindeki classları paylaşıyor olacağım

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
 
namespace OopTemelleri
{
     abstract public class Canlilar
    {
        #region Access Modifers
  /* public : public olarak işaretlenen öge kod blogu ve proje heryerden erişebilen access modifers dır
          private : private olarak tanımlanan öge sadece tanımladığı class içersinden yada o kod blogu erişebilinir
        * protected :protected olarak tanımlanan öge sadece tanımladığı class ve o class dan türemiş diğer class lardan erişebilinir
         * internal:Bulunduğu assembly (DDL veya exe )içinden erişebilinir
         * protected internal:bulunduğu classın içinden veya o classdan türemeiş diğer classlarda ve aynı (DDL veya exe)içinden (assembly)erişebilinir
         
         */
 #endregion 
 
        #region Fields
    
        private string _solunum;
        private string _beslenme;
        private string _ureme;
        private string _boşaltim; 
        #endregion
 
        #region properties
        public string Beslenme
        {
            get { return _beslenme; }
            set { _beslenme = value; }
        }
        public string Boşaltim
        {
            get { return _boşaltim; }
            set { _boşaltim = value; }
        }
        public string Ureme
        {
            get { return _ureme; }
            set { _ureme = value; }
        }
        public string Solunum
        {
            get { return _solunum; }
            set { _solunum = value; }
        } 
        #endregion
 
        public abstract void Beslen();
        public abstract void Suic(); 
 
         /*
          1) Kendinden türeyecek classlara base olmak için yazılırlar
          * 2)Abstract metodların sadece gövdeleri yazılır kendinden türeyen classlarda zorunlu override işlemine tabi tutulur
          * 3)Abstract metodlar zorunlu public tir
          * Miras larak kullanılırlar
          
          */
 
    }
} 
 
======================================================================
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
 
namespace OopTemelleri
{
    public class Bitkiler:Canlilar
    {
        private string _fotosentez;
 
        public string Fotosentez
        {
            get { return _fotosentez; }
            set { _fotosentez = value; }
        }
 
 
        public override void Beslen()
        {
            throw new NotImplementedException();
        }
 
        public override void Suic()
        {
            throw new NotImplementedException();
        }
 
    }
} 
 
====================================================================
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
 
namespace OopTemelleri
{
    public  class Hayvan :Canlilar 
    {
        private string _yuru;
 
        public string Yuru
        {
            get { return _yuru; }
            set { _yuru = value; }
        }
        
        
        public override void Beslen()
        {
 
        }
 
        public override void Suic()
        {
          
        }
 
        public virtual string YeniDogan()
        {
            return "Civciv";
        }
 
        // virtual ezilebilir anlamı taşır 
    }
} 
 
=============================================================
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
 
namespace OopTemelleri
{
     sealed class Insan:Hayvan// mühürnlenmiş anlamına gelir
    {
        private string _dusun;
 
        public string Dusun
        {
            get { return _dusun; }
            set { _dusun = value; }
        }
 
        public override string YeniDogan()
        {
            return "bebek";
        }
 
        #region polymorfizim
        //birbirinden türeyen classlar içerindeki metodların isimlerinin aynı olması durumunda basedeki metod virtual anahtar kelimesi ile imzalanır ve diger classda override edilerek farklı davranması sağlanabilinir.Buna çok biçimlilik denir 
        #endregion
    }
}
===================================================================
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;
 
namespace OopTemelleri
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
 
        private void button1_Click(object sender, EventArgs e)
        {
            Hayvan hvn = new Hayvan();
          MessageBox.Show(hvn.YeniDogan());
           
        }
 
        private void Form1_Load(object sender, EventArgs e)
        {
                Insan ins = new Insan();
                MessageBox.Show(ins.YeniDogan());
               
        }
    }
} 
Video  Anlatımı

OOP Temelleri paylaşan: sinan-d-arslan-1

Hiç yorum yok :

Yorum Gönder

Soru Görüş önerileriniz için gmail plus üzerinden + layın müsait olduğumda mutlaka yanıt dönüyor olacağım.

Asp.Net Gridview Detaylı Anlatım Crud İşlemleri

1 yorum
Merhaba Arakdaşlar

Bu bölümde Asp.Net Gridview üzerinde  Crud İşlemlerine bakıyor olacağız.Yapacağımız uygulama ile Asp.Net Gridview  üzerine eklemiş olduğumuz kontrolleri yakalamak ve bu kontrollerin tetikleri eventler üzerinden anlatımı gerçekleştirmek olacaktır.

Şimdi zaman kaybetmeden Uygulamamıza geçelim.Bu aşamada gene kaynak kodları vererek ve video
anlatım şeklinde ilerliyor olacağız.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Data.SqlClient;
using System.Data;
 
namespace GridCrud
{
    public partial class Default : System.Web.UI.Page
    {
        SqlConnection cnn = new SqlConnection("Server=.;Database=VideoMarket;trusted_connection=true");
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                DataBagla();
            }
        }
 
        private void DataBagla()
        {
            SqlDataAdapter adp = new SqlDataAdapter("Select FilmNo,FilmAd,FilmTurNo,Yonetmen,Miktar from Filmler", cnn);
            DataTable dt = new DataTable();
            adp.Fill(dt);
            GridView1.DataSource = dt;
            GridView1.DataBind();
        }
 
        protected void lnkYeniKayitEkle_Click(object sender, EventArgs e)
        {
            GridView1.ShowFooter = true;
            DataBagla();
        }
 
        protected void GridView1_RowCommand(object sender, GridViewCommandEventArgs e)
        {
            if (e.CommandName == "Cancel")
            {
                GridView1.ShowFooter = false;
                DataBagla();
            }
            if(e.CommandName== "Insert")
            {
                TextBox FilmAdi = (TextBox)GridView1.FooterRow.FindControl("txtYeniFilmAdi");
                TextBox Yonetmen = (TextBox)GridView1.FooterRow.FindControl("txtYeniYonetmen");
                TextBox Miktar = (TextBox)GridView1.FooterRow.FindControl("txtYeniMiktar");
                DropDownList FilmTurNo = (DropDownList)GridView1.FooterRow.FindControl("DropDownList1");
 
                bool sonuc = FilmEkle(FilmAdi.Text,Convert.ToInt32(FilmTurNo.SelectedValue),Yonetmen.Text,Convert.ToInt32(Miktar.Text));
 
                if (sonuc)
                {
                    GridView1.EditIndex = -1;
                    DataBagla();
                }
            }
        }
 
        private bool FilmEkle(string filmadi, int filmturno, string yonetmen, int miktar)
        {
 
            bool sonuc = false;
            SqlCommand cmd = new SqlCommand("Insert Into Filmler (FilmAd,FilmTurNo,Yonetmen,Miktar) values (@FilmAd,@FilmTurNo,@Yonetmen,@Miktar)", cnn);
            cmd.Parameters.AddWithValue("@FilmAd",filmadi);
            cmd.Parameters.AddWithValue("@FilmTurNo",filmturno);
            cmd.Parameters.AddWithValue("@Yonetmen",yonetmen);
            cmd.Parameters.AddWithValue("@Miktar", miktar);
            try
            {
                if (cnn.State == ConnectionState.Closed)
                {
                    cnn.Open();
                }
                sonuc = Convert.ToBoolean(cmd.ExecuteNonQuery());
            }
            catch (SqlException ex)
            {
                string hata = ex.Message;
 
            }
            finally
            {
                cnn.Close();
            }
            return sonuc;
        }
 
        protected void GridView1_RowCancelingEdit(object sender, GridViewCancelEditEventArgs e)
        {
            GridView1.EditIndex = -1;// Secili index i bıraktık
            DataBagla();
        }
 
        protected void GridView1_RowEditing(object sender, GridViewEditEventArgs e)
        {
            GridView1.EditIndex = e.NewEditIndex;// Secili Satır Editlenecekse yakala
        }
 
        protected void GridView1_RowUpdating(object sender, GridViewUpdateEventArgs e)
        {
            Label FilmNo = (Label)GridView1.Rows[e.RowIndex].FindControl("lblFilmNo");
            TextBox FilmAdi = (TextBox)GridView1.Rows[e.RowIndex].FindControl("txtFilmAdi");
            TextBox Yonetmen = (TextBox)GridView1.Rows[e.RowIndex].FindControl("txtYonetmen");
            TextBox Miktar = (TextBox)GridView1.Rows[e.RowIndex].FindControl("txtMiktar");
            TextBox FilmTurNo = (TextBox)GridView1.Rows[e.RowIndex].FindControl("txtFilmTurNo");
           
            bool sonuc = FilmGuncelle(Convert.ToInt32(FilmNo.Text),FilmAdi.Text,Convert.ToInt32(FilmTurNo.Text),Yonetmen.Text,Convert.ToInt32(Miktar.Text));
            if (sonuc)
            {
                GridView1.EditIndex = -1;
                DataBagla();
            }
          
        }
 
        private bool FilmGuncelle(int filmno, string filmadi, int filmturno, string yonetmen, int miktar)
        {
            bool sonuc = false;
            SqlCommand cmd = new SqlCommand("Update Filmler set FilmAd=@FilmAd,FilmTurNo=@FilmTurNo,Yonetmen=@Yonetmen,Miktar=@Miktar where FilmNo=@FilmNo", cnn);
            cmd.Parameters.AddWithValue("@FilmAd",filmadi);
            cmd.Parameters.AddWithValue("@FilmTurNo",filmturno);
            cmd.Parameters.AddWithValue("@Yonetmen",yonetmen);
            cmd.Parameters.AddWithValue("@Miktar", miktar);
            cmd.Parameters.AddWithValue("@FilmNo",filmno);
            try
            {
                if (cnn.State == ConnectionState.Closed)
                {
                    cnn.Open();
                }
                sonuc = Convert.ToBoolean(cmd.ExecuteNonQuery());
            }
            catch (SqlException ex)
            {
                string hata = ex.Message;
            }
            finally
            {
                cnn.Close();
            }
            return sonuc;
        }
 
        protected void GridView1_RowDeleting(object sender, GridViewDeleteEventArgs e)
        {
            int filmno = Convert.ToInt32(GridView1.DataKeys[e.RowIndex].Value);// tıklanan satırdaki filmnosu
            bool sonuc = FilmSil(filmno);
            if (sonuc)
            {
                DataBagla();
            }
        }
 
        private bool FilmSil(int filmno)
        {
            bool sonuc = false;
            SqlCommand cmd = new SqlCommand("Delete from Filmler where FilmNo=@FilmNo", cnn);
           
            cmd.Parameters.AddWithValue("@FilmNo", filmno);
            try
            {
                if (cnn.State == ConnectionState.Closed)
                {
                    cnn.Open();
                }
                sonuc = Convert.ToBoolean(cmd.ExecuteNonQuery());
            }
            catch (SqlException ex)
            {
                string hata = ex.Message;
            }
            finally
            {
                cnn.Close();
            }
            return sonuc;
        }
    }
}
 
Video Anlatım : 


Video Anlatım 2:

1 yorum :

Yorum Gönder

Soru Görüş önerileriniz için gmail plus üzerinden + layın müsait olduğumda mutlaka yanıt dönüyor olacağım.