C# Otobus Otomasyonu
Sinan Arslan
04:20
C# Otobus Otomasyonu
,
Katmanli Mimari
,
MSSQL
,
Store Procedure
,
Store Procedure ile Kullanıcı Giriş
,
VeriTabanı Modelleme
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
MS SQL Function Kullanımı
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
Sinan Arslan
05:12
abstract class
,
base class
,
constructor
,
derived class
,
object oriented programming
,
OOP
,
oop encapsulation
,
oop polymorphism
,
override
,
sealed class
,
virtual method
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
Merhaba ArakdaşlarBu 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.
Kaydol:
Kayıtlar
(
Atom
)
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.