25 Temmuz 2013 Perşembe

Entity Framework Giriş

      Merhabalar, bu yazımızda Entity Framework'e giriş yapacağız ve verileri çekip datagridview'de görüntüleme yapacağız.Entity Framework'ü mutlaka öğrenin derim ben.. İlk olarak Entity Framework (EF) bağlantısını nasıl yapacağımızı anlatacağım. Solutions Explorer penceresinde projemize sağ tıklayıp Add > New Item diyoruz ve karşımıza çıkan pencereden yan taraftan Data sekmesini seçiyoruz ve ADO.NET Entity Data Model seçeneğini seçip Add butonuna tıklıyoruz. 



      Arkasından Generate Database'i seçip Next'e tıklıyoruz. Kullancağımız veri tabanını seçiyoruz ve next'e tıklıyoruz. Eğer kullanacağımız veri tabanımızı combobox'da göremiyorsak New Connection butonuna tıklıyoruz. Bilgisayarımızın adını giriyoruz, alt taraftan da veri tabanımızı seçiyoruz ve tamama tıklıyoruz. Şimdi açılan pencereden ise projemizde kullanacağımız tablo view ve store procedure'leri seçip finish diyoruz.


      Daha sonra ise projemize gelelim. Projemize bir adet buton ve datagridview ekleyelim. Arkasından ise global değişken olarak entity framework'ümüz için bağlantı nesnesini oluşturalım.


LisansTezi_VTEntities entity = new LisansTezi_VTEntities();

      Butonumuzun click event'ına ise şu kodları yazıyoruz:


var sorgu = from veriler in entity.TBL_Firma select veriler;
dataGridView1.DataSource = sorgu;

      İşte bu kadar kolay :) Önceden olsa connectionstring ve komut cümleleri filan yazacaktık, bunları bağlayacaktık filan. Ama gördüğünüz üzere Entity Framework ile bunu iki üç satır kod ile yaptık. bir sonraki yazımda EF'de kayıt ekleme silme güncelleme gibi işlemleri anlatacağım, herkese iyi çalışmalar.


24 Temmuz 2013 Çarşamba

C# ile Stored Procedure Kullanımı

      Merhabalar bir önceki yazımda SQL Server'da Stored Procedure (SP) oluşturmayı anlatmıştım. Şimdi ise bu oluşturduğumuz SP'yi uygulamalarımızda nasıl kullanacağımıza bakacağız. Ben örnek olarak C# dilinde kayıt ekleyebileceğimiz basit bir uygulama yapacağım. 

      Öncelikle bir adet form uygulaması açalım ve 4 adet textbox ve birer tane datetimepicker ile buton ekleyelim. ilk olarak kullanacağımız SP'yi yazalım. Kayıt ekleyeceğimiz SP şu şekilde olacak:


CREATE PROCEDURE sp_uye_ekle
@UyeAdi nvarchar(50),
@UyeSoyadi nvarchar(50),
@UyeTel nvarchar(50),
@UyeMail nvarchar(50),
@Baslangic_Tarihi datetime
AS
BEGIN
      SET NOCOUNT ON;
      INSERT INTO UyeTablosu
      VALUES(@UyeAdi, @UyeSoyadi, @UyeTel, @UyeMail, @Baslangic_Tarihi)
END

      Gördüğünüz gibi dışarıdan ad, soyad, telefon, mail ve kayıt tarihini alıyoruz. ID otomatik artan olduğu için burada kullanmadık. Execute deyip derliyoruz SP'mizi. Bir önceki yazımda buna değinmiştim. Şimdi gelelim bunu C# içerisinde nasıl kullanacağımıza, ilk olarak global değişken olarak bağlantı ve komut nesnelerimiz tanımlıyoruz. 


SqlConnection baglanti = new SqlConnection();
SqlCommand komut = new SqlCommand();

Daha sonra ise Form_Load kısmına ConnectionString ifademizi yazıp bağlantımızı açıyoruz arkasından.


baglanti.ConnectionString = "……"; //ConnectionString ifademiz gelecek buraya
baglanti.Open();

Butonumuzun click event'ına gelelim şimdi, kodlarımız şu şekilde: 


komut.Connection = baglanti;
komut.CommandType = CommandType.StoredProcedure;

komut.CommandText = "sp_uye_ekle";

komut.Parameters.Add("@UyeAdi", adTXT.Text);
komut.Parameters.Add("@UyeSoyadi", soyadTXT.Text);
komut.Parameters.Add("@UyeTel", telTXT.Text);
komut.Parameters.Add("@UyeMail", email);
komut.Parameters.Add("@Baslangic_Tarihi",            Convert.ToDateTime(dateTimePicker1.Value.ToShortDateString()));
komut.ExecuteNonQuery();
komut.Parameters.Clear();

      Burada dikkat edeceğimiz noktalar ise komut değişkenimizin tipini Stored Procedure olarak belirtmemiz, CommandText kısmına SQL sorgusu yerine SP'mizin adını yazmak, parametrelerimizi eklerken tiplerine dikkat etmek ve son olarak da parametrelerimizi Clear ile temizlemek, yoksa daha sonra tekrar SP'yi çalıştıracağımızda hatalar ile karşılaşıyoruz. 
Store Procedure oluşturmayı ve bir uygulama içinde kullanmayı öğrenmiş olduk. Entity framewok yada LinQ ile uğraşanlar bu şekilde ConnectionString yazmayı sevmezler :) Bir sonraki yazımda Entity Framewoka giriş yapacağım bende. Daha sonra Entity Framework içinde de Store Procedure nasıl kullanılır değineceğiz. Herkese iyi çalışmalar :)


23 Temmuz 2013 Salı

SQL Server'da Stored Procedures Yazmak

      Merhabalar, bugün veri tabanı ile uğraşan herkesin işine yarayacak bir konuya değiniyorum. Stored Procedures (SP) kullanımı çok kolay ve etkili bir yapıdır. Sorgularımızın cevaplarını çok hızlı bir şekilde döndürmektedir. Peki bunun nasıl yapıyor? SP'ler Database SErver'ın içinde tutulur ve sadece ilk çalıştırıldıkları anda derlenirler. Her çalıştırmada derlenme işlemi olmadığından daha hızlı çalışmaktadır. SP ile tablolarımızdan veri çekme, tabloya veri ekleme, silme ve veriyi güncelleme gibi işlemleri kolaylıkla yerine getirebilmekteyiz. 

      Peki SP nasıl yazılır? İlk olarak SQL Server'ı açıyoruz. hangi database için SP yazacaksak o database'in başındaki + işaretine tıklıyoruz. Sonra Programmability'in yanındaki + işaretine tıklıyoruz. Store Procedures sekmesine tıklıyoruz ve New Stored Procedure'a tıklıyoruz.



Bu adımları yaptıktan sonra karşımıza şöyle bir pencere gelecektir.



      Bu pencere gözünüzü korkutmasın yapılacak işlemler gayet basit. 1 numaralı yerde SP'ye isim veriyoruz. 2 numaralı kısımda ise SP'miz dışarıdan parametre alacaksa onu belirtiyoruz. Parametrenin türünü ve belirtmeyi ve parametrenin başına @ işareti koymayı kesinlikle unutmuyoruz. 3 numaralı kısımda ise veri çekme, ekleme, silme ve veriyi güncelleme gibi sql cümleciğini yazıyoruz.
      Şimdi basit bir sorgu yazalım ve çalıştıralım. Kişiler tablosundan Kisi_ID'si girilen kişinin verilerini görüntüleyelim. Ben 1 numaradaki isim kısmına SP_kisicek diyorum. Dışarıdan bir parametre alacağız, o da kişinin ID'si bu yüzden 2 numaralı kısıma ise @id isminde bir parametre tanımlıyorum... Sorgumuz şu şekilde olacak

CREATE PROCEDURE SP_kisicek
@id int
AS
BEGIN
SET NOCOUNT ON;
SELECT * FROM TBL_Kisi WHERE Kisi_ID=@id
END
GO

Sorgumuzu yazdıktan sonra Execute butonuna tıklayarak derliyoruz ve hata var ise görüyoruz. Peki yazdığımız bu SP'yi nasıl çalıştırıp test edeceğiz? SQL Serverda  New Query diyerek yeni bir sorgu açıyoruz ve exec SP_kisiekle 1 diyoruz.. bize Kisi_ID'si 1 olan kişinin verileri gelecektir. Ayrıca ekleme silme güncelleme gibi işlemleri de yapabiliriz. Veri eklemek istersek kodlarımız şu şekilde olacak:

CREATE PROCEDURE SP_havuzekle
@id int,
@ad nvarchar(50)
AS
BEGIN
SET NOCOUNT ON;
INSERT INTO TBL_Havuz VALUES (@id, @ad)
END
GO

      !!! Dikkat etmemiz gereken noktalar birden fazla parametre olduğu için parametreleri virgül ile ayırıyoruz ve eğer ID değişkenimizi otomatik artan yaptıysak ekleme sorgusunda yazmıyoruz. 
      Silme işleminde ise parametre olarak sadece ID değişkenimizi alacağız ve ID'si bu girilen ID'ye eşit olan verileri sileceğiz. 
      Güncelleme işleminde ise parametre olarak Primary key'imizi ve güncelleyeceğimiz veriyi alıyoruz. Daha sonra ise sorgumuzu yazıyoruz ve çalıştırıyoruz.

      Son olarak söyleyeceğim yazdığınız Stored Procedures üzerinde değişiklik yapacaksanız Object Explorer penceresinde SP yazma işleminde yaptığımız işlemleri yapıp kendi yazdığımız SP'nin üzerine geliyoruz ve Modify diyoruz. Daha sonra değiştirmek istediğimiz kısımları değiştirip tekrardan Execute diyerek derliyoruz. Bir sonraki yazıda görüşmek üzere :)


22 Temmuz 2013 Pazartesi

SQL Server Tablo Değişikliği Hatası

      Merhabalar, SQL Server kullanan herkes bu hata ile mutlaka karşılaşmıştır.
Saving changes is not permitted. The changes you have made require the following tables to be dropped and re-created. You have either made changes to a table that can't be re-created or enabled the option Prevent saving changes that require the table to be re-created.

      Bu hatayı almamızın nedenleri ise şunlardır:
*  Primary key ekleme/değiştirme
*  Foreign key ekleme/değiştirme
*  Yeni bir kolon ekleme
*  Varolan bir kolonu silme
*  Kolon özelliklerini değiştirme

      Yapmamız gereken işlem çok basit. Öncelikle Tools sekmesinden Options menüsüne giriyoruz. Karşımıza şu şekilde bir pencere gelecek.


      Yan kısımdan Designer kısmından Table and Database Designer seçeneğini seçiyoruz. Daha sonra ise resimde de işaretleyerek belirttiğim kısımdaki tick işaretini kaldırıyoruz. Hepsi bu kadar, herkse iyi çalışmalar...


SQL Server - Satırları Birleştirme

Merhaba,  Bu yazımda sql server'da birden çok satırı birleştirip tek satır yapmayı anlatacağım. Senaryomuz şu şekilde olsun mesela; bir...