10 Eylül 2013 Salı

Command Nesnesi - Ado.net



Command nesnesini veritabanına veri eklerken,silerken ve silerken kullanacağız. Bizler sql cümlelerini kullanabilmemiz için sqlcommand nesnesini kullanırız. 

Örnek çalışma; Formumuza 3 label, 3 textbox ve kaydetme işlemi için bir buton ekliyelim. Kaydet butonunun içine şu kodları yazalım;
private void button1_Click(object sender, EventArgs e)
        {
            baglanti.Open();
            SqlCommand cmd = new SqlCommand("Insert into Kitaplar(KitapAdi,Yazar,SayfaSayisi) values('" + txtKitapAdi + "','" + txtYazari + "'," + txtSayfaSayisi + ")",baglanti);
            cmd.ExecuteNonQuery();
            cmd.Dispose();
            baglanti.Close();

        }
Öncelikle bir önceki dersimizde belirttiğimiz sqlconnection nesnesi ile bir bağlantı cümleciği oluşturmuştuk. Bu bağlantımızı açalım. Sonra Sql command sınıfını kullanarak bir nesne türetelim. Bu sınıf bize csharp’ta sql cümleleri kullanarak ekleme,silme ve güncelleme yapmamızı sağlayacak. Bu sınıfı kullanmadan bu işlemleri yapamayız. Bizde “cmd” adında bir nesne türettik ve bu nesnenin içine ekleme işleminde kullanacağımız insert sql sorgu cümleciğini yazıyoruz. İnsert sql cümleciğinden sonra into gelir sonrasında veritabanındaki veri ekliyeceğimiz tablonun ismini yazarız. Tablomuz “Kitaplar” bundan sonra parantez açıp ekleme yapacağımız hücre isimlerini yazarız. Values kısmında ise bu hücrelere ekliyeceğimiz verileri gireriz. Burada eğer bizler verilerimizi elimizde değilde textbox’tan gelen verileri ekleyeceksek ve verimiz string tipte bir veriyse şu kombinasyonu takip etmeliyiz. Önce tek tırnak(‘) sonra çift tırnak(“) sonra artı(+) sonra textbox’ın ismi .text sonra çift tırnak(“) sonra tek tırnak(‘) şeklide devam edeceğiz. Eğer textbox’tan alacağımız veri string değilde integer tipinde bir veri ise önce çift tırnak(“) sonra artı(+) sonra textbox’ın ismi .text sonra çift tırnak(“) yaparak veri ekleme işlemini yapacağız. Bu sql komutunun işleyebilmesi için bizlerin bunu çalıştırması lazım bunu ise bizler;
ExecuteNonQuery();
İle yapıyoruz. Böylece kodlarımız aktif hale geliyor. Sonrasında bu kodların ram’de çok yer kaplamasını istemiyorsak ve ram’i boşaltmak istiyorsak dispose() metodunu kullanmalıyız. Sonrasında sqlconnection nesnesini kapatıyoruz ve dispose ile ramlerimizi boşaltıyoruz.

Silme İşlemi:
private void btnSil_Click(object sender, EventArgs e)
        {
            baglanti.Open();
            SqlCommand cmd = new SqlCommand("delete from Kitaplar where KiitapId=" + txtKitapId.Text, baglanti);
            cmd.ExecuteNonQuery();
            cmd.Dispose();
            baglanti.Dispose();
        }
Bizler önce ekleme işleminde bağlantımızı kapattığımız için öncelikle bağlantımızı açıyoruz. Sqlcommand sınıfını sql cümlelerimizi kullanmak ve bunları çalıştırmak için bu sınıftan bir nesne türetiyoruz. Bu sefer silme işlemi yapacağız. Sql cümlesi ile silme işlemini şöyle yapıyoruz. Delete from silme işlemini yapacağımız tablonun ismini yazıyoruz. Sonra şartımızını where cümlesinden sonra yazıyoruz. Diyoruz ki KiitapId’si şu olan(bu veriyi textbox’tan alıyoruz) veriyi sil. Şarttan sonra veriyi textbox’tan almak için eşittir(=) ifadesi çift tırnak(“) textbox’ın ismi. Text yazıyoruz. Bu sql cümlesini çalıştırmak için unutmuyoruz ExecuteNonQuery metodunu yazıyoruz.

Uygulamayı Burdan İndirebilirsiniz:https://hotfile.com/dl/244802091/5271334/adonet.rar.html

15 Temmuz 2013 Pazartesi

Connection Nesnesi - Ado.net



Oluşturduğumuz veri tabanına bağlantı kurmamıza yarayan nesnedir. Bu nesneyi chsarp tarafında kullanabilmemiz için bir namespace eklememiz lazım öncelikle. Bu namespace;  using System.Data.SqlClient; ‘dir. Böylelikle sql connection nesnesini kullanabileceğiz. Bu namespace’ni ekledikten sonra artık bağlantı cümlemizi kurup tanımlayabiliriz.

SqlConnection baglanti = new SqlConnection("Data Source=KORUCU\\KARAURGAN; Initial Catalog=Kitaplar; Integrated Security = True");
            baglanti.Open();
        }

Kodun Açıklaması;
Öncelikle SqlConnection nesnesinden bir nesne türetmeliyiz. Eğer türetmezsek biz bağlantıyı açığ kapatamayız. SqlConnection nesnesinden “baglanti” isminde bir nesne türettik. Şimdi bu türettiğimiz nesneyi veri tabanına bağlayıp bağlantıyı açmalıyız. 

Data Source kısmına bilgisayarımızın adı ve sql serverimizin adını vermeliyiz. Yani veri tabanımızın saklandığı yer. 

Initial Catalog kısmına ise biz veri tabanımızın ismini yazıyoruz. Bizim oluşturduğumuz veritabanımızın ismi Kitaplar olduğu için onu yazıyoruz.

Integrated Security kısmı ise biz eğer veri tabanımıza kullanıcı adı ve şifre vermediysek onu ekliyoruz ve karşısına True yazıyoruz.

Tanımlamaları yaptık, veri tabanına bağlanabilmemiz için veri tabanına olan bağlantıyı açmamız lazım. Bunun için SqlConnection nesnesinden türettiğimiz baglanti nesnesini açıyoruz; baglanti.Open(); diyerek.

Uygulamayı Burdan İndirebilirsiniz: https://hotfile.com/dl/234210217/347f83c/adonet.rar.html

Ado.Net Giriş



Öncelikle Ado.net’te Sql Server 2008 R2 kullanacağım. Örneklerde oluşturduğum veri tabanını kullanabilmeniz için sql server 2008 r2’yi bilgisayarınıza kurmanız lazım. Sql server management studio’yu açtık. Database->sağ tıklayıp new database’den Kitaplar adında bir database(veri tabanı oluşturuyoruz) Sonra veri tabanımızın üzerini-> sağ tıklayıp new table’dan veri tanımızda kullanacağımız tabloyu oluşturuyoruz. Tablomuzun ismide “Kitaplar” olsun. 
Tabloda;
KitapId(int)
KitapAdi(nvarchar)
Yazar(nvarchar)
SayfaSayisi(int)

Veri tabanını yazının sonuna ekliyorum. Tek yapmanız gereken Kitaplar.sql dosyasını tıklayıp sql serverda açın ve execute butonuna basarak veritabanını eklemiş olacaksınız. Veya kitaplar.bak dosyasını ekliyecem. Bunu bilgisayarınıza kurmanız Database-> sağ tıklayıp Kitaplar adında boş bir veri tabanı oluşturun. Sonra bu veritabanına sağ tıklayıp ->Task->Restore  seçeneğini seçin. Oradan Database ordan  From device radio butonunu tıklayarak bilgisayarımızdan backup dosyasını tıklayın. Sonra eklediğiniz backup veritabanını seçin. Menünün solunda yer alan “Option” bölümünden Overwrite the existing database seçeneğini seçin. Bu şu demek oluşturduğum boş veri tabanının üzerine bu backup dosyasını ekle demek oluyor.

Veri Tabanını Buradan İndirebilirsiniz: https://hotfile.com/dl/234209608/2abf021/veritaban.rar.html

21 Haziran 2013 Cuma

Alarm Uygulaması - Csharp

Csharp'ta Alarm Uygulaması Yapılacak. Bunun için windows formumuza 3 label,3 textbox, 2 buton ve 2 timer ekliyoruz.

Çözümü:
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;

namespace uygulama8
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            txtTarih.Text = DateTime.Now.ToShortDateString();
            txtZaman.Text = DateTime.Now.ToLongTimeString();
            timer1.Enabled = false;
            timer2.Enabled = false;
            Text = "Alarm Kapalı";
            timer1.Interval = 100;
        }

        private void btnAlarmiAc_Click(object sender, EventArgs e)
        {
            timer1.Enabled = true;
            this.Text = "alarm açık";
        }

        private void timer1_Tick(object sender, EventArgs e)
        {
            if (txtTarih.Text == DateTime.Now.ToShortDateString() && txtZaman.Text == DateTime.Now.ToLongTimeString())
            {
                //timer2yi aktif yap (yanıp sönmeyi sağlayacak)
                timer2.Enabled = true;
                //Alarm metnini bildir
                MessageBox.Show(txtMesaj.Text);
            }
        }

        private void timer2_Tick(object sender, EventArgs e)
        {
            //Yazı ve zemin rengini değiştirerek
            //Yanıp sönmesini sağla
            Color c;
            c =txtMesaj.BackColor;
           txtMesaj.BackColor = txtMesaj.ForeColor;
           txtMesaj.ForeColor = c;
        }

        private void btnAlarmıKapat_Click(object sender, EventArgs e)
        {
            timer1.Enabled = false;
            timer2.Enabled = false;
            this.Text = "alarm kapalı";
        }
    }
}

Kod Açıklaması: 
  private void Form1_Load(object sender, EventArgs e)
        {
            txtTarih.Text = DateTime.Now.ToShortDateString();
            txtZaman.Text = DateTime.Now.ToLongTimeString();
            timer1.Enabled = false;
            timer2.Enabled = false;
            Text = "Alarm Kapalı";
            timer1.Interval = 100;
        }
Formumuz yüklendiği zaman öncelikle datetime sınıfını kullanarak bu sınıfın içinde şimdki tarihi ToShortDateString metodu ile tarihi gün,ay ve yıl olarak alıp textbox'ın içine yazdırıyoruz. ToLongTimeString metodunu kullanarak şimdki zamanı saat ve dakika olarak alıp textbox'ın içine yazdırıyoruz. Tezt dediğimiz formumuzun üstüne form 1 yerine alarm kapalı yazdırıyoruz. Bizim timer'ımız 100 milisaniyelik zaman diliminde çalışacak.

 private void btnAlarmiAc_Click(object sender, EventArgs e)
        {
            timer1.Enabled = true;
            this.Text = "alarm açık";
        }
Alarmı aç butonuna basmamız  ile timer1'i aktif hale getiriyoruz. Form1 yazılacak yere alarm açık yazdırıyoruz.

Timer1 peki nasıl aktif hale gelecek?
private void timer1_Tick(object sender, EventArgs e)
        {
            if (txtTarih.Text == DateTime.Now.ToShortDateString() && txtZaman.Text == DateTime.Now.ToLongTimeString())
            {
                //timer2yi aktif yap (yanıp sönmeyi sağlayacak)
                timer2.Enabled = true;
                //Alarm metnini bildir
                MessageBox.Show(txtMesaj.Text);
            }
        }
Şu kontrolu yapıyoruz eğer textbox'ın içindeki tarih bizim girdiğimiz tarih ile eşit ve zaman bizim textbox'ın içindeki saat ve dakika ile eşitse ozaman timer2 'yi aktif et ve mesaj box ile alarm mesaj kutusuna yazdığımızı ekrana mesaj ile getir.

private void timer2_Tick(object sender, EventArgs e)
        {
            //Yazı ve zemin rengini değiştirerek
            //Yanıp sönmesini sağla
            Color c;
            c =txtMesaj.BackColor;
           txtMesaj.BackColor = txtMesaj.ForeColor;
           txtMesaj.ForeColor = c;
        }
Timer2 timer1 aktif olunca aktif olacak. Ozaman textbox'ın arkaplanını koyu yapıyoruz. Böylece ordaki yazı yanıp sonen hale gelecek.

private void btnAlarmıKapat_Click(object sender, EventArgs e)
        {
            timer1.Enabled = false;
            timer2.Enabled = false;
            this.Text = "alarm kapalı";
        }

Alarmı kapat butonuna tıkladığımızda ise timer1 ve 2'yi kapatıyoruz. Ve form1 yazılacak yere alarm kapalı yazdırıyoruz.

Uygulamayı Buradan İndirebilirsiniz: https://hotfile.com/dl/230048774/cbbf783/uygulama8.rar.html

19 Haziran 2013 Çarşamba

String Listeleme ve Sıralama - Csharp



Öncelikle Formumuza iki tane listbox iki tane button ekliyelim. Butonlardan bir tanesi listeleme bir taneside sıralama olacak. Formumuzun üzerindeyken sağ tıklayıp view code kısmına geçip kullanacağımız diziyi public olarak tanımlarız. Sonra listeleme yapacağımız butonu çift tıklayıp burada öncelikle dizimize string değerler aktarırız. Bunu listbox’a yazdırmak için bir for döngüsü kurarız ve bu döngü dizinin eleman sayısı kadar döner.

Listeleme yaptıktan sonra sıralam işlemi yapmaya geldik. Bunun için Bir for döngüsü kurarız. Bu döngü ilk elemandan başlayıp son elemana kadar kontrol eder. Sonra bir while döngüsü kurup diziyi kontrol ederiz ve atama yapacağımız işlemi temp değişkenine atarız.

Sıralama yaptıktan sonra bunları listbox’a yazdırmak için tekrar bir for döngüsü kurarız.





Çözümü: 

public string[] dizi = new string[5];

        private void button1_Click(object sender, EventArgs e)
        {
            dizi[0] = "Mehmet";
            dizi[1] = "Zuhre";
            dizi[2] = "Kerem";
            dizi[3] = "Ayşe";
            dizi[4] = "Esra";

            int i;
            for (i = 0;i<=dizi.Length-1; i++) {

                listBox1.Items.Add(dizi[i]);
            }
        }

        private void button2_Click(object sender, EventArgs e)
        {
            dizi[0] = "Mehmet";
            dizi[1] = "Zuhre";
            dizi[2] = "Kerem";
            dizi[3] = "Ayşe";
            dizi[4] = "Esra";

            int i;
            for (i = 1; i <= dizi.Length - 1; i++)
            {

                int j = i;
                while (j != 0 && String.Compare(dizi[j], dizi[j - 1]) == -1)
                {
                               
                string temp = dizi[j - 1];
                dizi[j - 1] = dizi[j];
                dizi[j] = temp;
                j -= 1;
                }
               
            }
            for (int t = 0; t <= dizi.Length - 1; t++)
            {
                listBox2.Items.Add(dizi[t]);
            }
           
        }

      
    }

 

Google PageRank Checker Powered by  MyPagerank.Net