Merhabalar, video video dediniz ufak ufak başladım video çekmeye. Bu yazımda C# Basit Telefon Rehberi Uygulaması yaptım. Bir saat kadar sürdü. Bu şekilde basit basit projeler ile videolar çekip youtube’a yüklemeye çalışacağım. Bu videoda da ses yok maalesef. Ancak yeni videoların sesli olmasına çalışacağım. Bu projenin videosu da olduğu için bu yazıda çok detaylı anlatmayacağım.
C# Basit Telefon Rehberi Uygulaması
İlk olarak MSSQL tabanlı proje olduğu için sql’de tablolarımızı açtık. İki adet tablo tanımladık. Telefon listesi ve kullanıcılar olarak iki tablomuz var. Önceki projedeki insert update select yöntemine ek olarak bu projede Stored Procedure (Saklı Yordam) ve Table Valued Function (Tablo Dönen Fonksiyonlar) da kullandım. Her projede farklı şeyleri göstermek bende daha iyidir.
SQL’e bağlanmak için de C# SQL Connection Class Hazırlamak yazımda verdiğim kodlardan faydalandım.
Tabloları açtıktan sonra kişi ekleme formunu hazırladım. Sonrasında Stored Procedure (Saklı Yordam) ve Table Valued Function (Tablo Dönen Fonksiyonlar) ‘ları hazırladım. Son olarak da ana ekranı hazırlamaya başladık. Ana işlemler bittiğinde kullanıcı giriş ekranını ve yeni kullanıcı kaydetme ekranını da hazırlayarak projeyi bitirdim.
Projeyi hazırlarken elimden geldiğinde farklı farklık yaklaşımlar kullanmaya çalıştım. Şimdi önce kodları sonra da videoları vereceğim.
C# Basit Telefon Rehberi Uygulaması Proje Kodları
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 Telefon_Rehberi { public partial class AnaFom : Form { public AnaFom() { InitializeComponent(); } private void AnaFom_Load(object sender, EventArgs e) { dgv_Update(); } private void yeniKişiEkleToolStripMenuItem_Click(object sender, EventArgs e) { new Kisi_Ekle() { }.ShowDialog(); dgv_Update(); } void dgv_Update() { dataGridView1.DataSource = Cls.SQLConnectionClass.Table("select * from dbo.Kisi_Bilgileri_Getir(0) "); } private void kişiBilgileriniGüncelleToolStripMenuItem_Click(object sender, EventArgs e) { Kisi_Ekle fr = new Kisi_Ekle(); fr.txt_id.Text = dataGridView1.CurrentRow.Cells[0].Value.ToString(); fr.ShowDialog(); } private void kullanıcıİşlemleriToolStripMenuItem_Click(object sender, EventArgs e) { new Kullanici_Ekle() { }.ShowDialog(); } private void listeyiYEnileToolStripMenuItem_Click(object sender, EventArgs e) { dgv_Update(); } } }
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 Telefon_Rehberi { public partial class Kisi_Ekle : Form { public Kisi_Ekle() { InitializeComponent(); } private void Kisi_Ekle_Load(object sender, EventArgs e) { Kisi_Oku(); } private void btn_cikis_Click(object sender, EventArgs e) { Close(); } void Kisi_Oku() { if (Convert.ToInt32(txt_id.Text) > 0) { DataTable dt = Cls.SQLConnectionClass.Table("select * from dbo.Kisi_Bilgileri_Getir(0) where [KAYITNO] = " + Convert.ToInt32(txt_id.Text) + " "); txt_ad.Text = dt.Rows[0]["Kişi Adı"].ToString(); txt_cep1.Text = dt.Rows[0]["Cep No 1"].ToString(); txt_cep2.Text = dt.Rows[0]["Cep No 2"].ToString(); txt_is1.Text = dt.Rows[0]["İş No 1"].ToString(); txt_is2.Text = dt.Rows[0]["İş No 2"].ToString(); txt_fax1.Text = dt.Rows[0]["Fax No 1"].ToString(); txt_fax2.Text = dt.Rows[0]["Fax No 2"].ToString(); txt_mail1.Text = dt.Rows[0]["E-Posta 1"].ToString(); txt_mail2.Text = dt.Rows[0]["E-Posta 2"].ToString(); txt_aciklama.Text = dt.Rows[0]["Açıklama"].ToString(); } } private void btn_kaydet_Click(object sender, EventArgs e) { Cls.SQLConnectionClass.Command("exec YeniKisi_Kaydet_Guncelle " + " " + Convert.ToInt32(txt_id.Text) + " " + ", " + Cls.glb.Aktif_Kullanici_Kod + " " + ", '" + txt_ad.Text + "' " + ", '" + txt_cep1.Text + "' " + ", '" + txt_cep2.Text + "' " + ", '" + txt_is1.Text + "' " + ", '" + txt_is2.Text + "' " + ", '" + txt_fax1.Text + "' " + ", '" + txt_fax2.Text + "' " + ", '" + txt_mail1.Text + "' " + ", '" + txt_mail2.Text + "' " + ", '" + txt_aciklama.Text + "' "); if (Cls.SQLConnectionClass.exception == null) { MessageBox.Show("İşlem Başarılı"); Close(); } } private void btn_Sil_Click(object sender, EventArgs e) { Cls.SQLConnectionClass.Command("delete from KISI_TELEFON_LISTESI where [tel_RECno] = " + Convert.ToInt32(txt_id.Text) + " "); if (Cls.SQLConnectionClass.exception == null) { MessageBox.Show("Silme Başarılı"); Close(); } } } }
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 Telefon_Rehberi { public partial class KullaniciGiris : Form { public KullaniciGiris() { InitializeComponent(); } private void btn_cikis_Click(object sender, EventArgs e) { Application.Exit(); } private void btn_giris_Click(object sender, EventArgs e) { int kontrol = Convert.ToInt16(Cls.SQLConnectionClass.Command("select count(*) from KULLANICILAR " + " where kul_Kod = '" + txt_kulkod.Text + "' and kul_sifre = '" + txt_pw.Text + "'")); if (kontrol > 0) { this.Hide(); new AnaFom() { }.ShowDialog(); } else { MessageBox.Show("Kullanıcı kodu veya şifre hatalı"); } } } }
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 Telefon_Rehberi { public partial class Kullanici_Ekle : Form { public Kullanici_Ekle() { InitializeComponent(); } private void Kullanici_Ekle_Load(object sender, EventArgs e) { temizle(); dgv_Update(); } void kullanici_kod_al() { txt_kulkod.Text = Cls.SQLConnectionClass.Command("select max(kul_Kod)+1 from KULLANICILAR ").ToString(); } private void btn_cikis_Click(object sender, EventArgs e) { Close(); } private void btn_kaydet_Click(object sender, EventArgs e) { int kontrol = Convert.ToInt32(Cls.SQLConnectionClass.Command("select count(*) from KULLANICILAR where [kul_Kod] = " + Convert.ToInt32(txt_kulkod.Text) + "")); if (kontrol == 0) { Cls.SQLConnectionClass.Command("" + " INSERT INTO [dbo].[KULLANICILAR] " + " ([kul_Kod] " + " ,[kul_Adi] " + " ,[kul_sifre]) " + " VALUES " + " (" + Convert.ToInt32(txt_kulkod.Text) + "" + " ,'" + txt_kulad.Text + "' " + " ,'" + txt_kulpw.Text + "' ) "); if (Cls.SQLConnectionClass.exception == null) { temizle(); MessageBox.Show("Kaydetme Başarılı"); dgv_Update(); } } else { Cls.SQLConnectionClass.Command("" + " update [dbo].[KULLANICILAR] set " + " [kul_Adi] = '" + txt_kulad.Text + "' " + " ,[kul_sifre] = '" + txt_kulpw.Text + "' where kul_Kod = " + Convert.ToInt32(txt_kulkod.Text) + " "); if (Cls.SQLConnectionClass.exception == null) { temizle(); MessageBox.Show("Kaydetme Başarılı"); dgv_Update(); } } } void temizle() { txt_kulad.Text = ""; txt_kulpw.Text = ""; kullanici_kod_al(); } void dgv_Update() { dataGridView1.DataSource = Cls.SQLConnectionClass.Table(" " + " SELECT [kul_RECno] as [KAYTINO]" + " ,[kul_Kod] as Kod" + " ,[kul_Adi] as Ad" + " ,[kul_sifre] as Şifre " + " FROM [dbo].[KULLANICILAR] "); } private void dataGridView1_CellClick(object sender, DataGridViewCellEventArgs e) { if (e.RowIndex >= 0) { temizle(); DataGridViewRow row = this.dataGridView1.Rows[e.RowIndex]; txt_kulad.Text = row.Cells["Ad"].Value.ToString(); txt_kulkod.Text = row.Cells["Kod"].Value.ToString(); txt_kulpw.Text = row.Cells["Şifre"].Value.ToString(); } } } }
using System; using System.Collections.Generic; using System.Linq; using System.Windows.Forms; namespace Telefon_Rehberi { static class Program { /// <summary> /// The main entry point for the application. /// </summary> [STAThread] static void Main() { Cls.SQLConnectionClass.Baglanti(); Application.EnableVisualStyles(); Application.SetCompatibleTextRenderingDefault(false); Application.Run(new KullaniciGiris()); } } }
Kodlarımız bu kadardı.
NOT: Proje Veritabanı prje dosyaları arasındadır. SQL 2017 ‘den alınmış bak uzantılı dosyadır.Proje Videoları
Videolarda yukarıdakilerdir. 2 part olarak hazırladım.
Bu yazımda bu kadar arkadaşlar. Diğer yazılarımda görüşmek üzere. Umarım faydalı olmuştur. Aşağıdaki linklerden eğitim seti sayfasına ve github projesine ulaşabilirsiniz.
C Sharp Eğitim Seti eğitimi sayfasına gitmek için tıklayınız. Derslerime özel olarak hazırladığım Github Projeme buradan ulaşabilirsiniz… Bu projenin Github sayfasına buradan ulaşabilirsiniz.
Sağlıcakla ve kodla kalın….