C# ile Linq To Sql Kullanımı
Herkese merhaba Bu yazıda sizlere C# dili ile Linq To Sql nasıl kullanılır onu anlatacağım. Bu yazıdan sonra sizlerde Linq To Sql kodlarını kolayca kullanabileceksiniz.İlk olarak Linq Nedir Bundan bahsetmek isterim.
Linq açılımı : Language Integrated Query demektir. Yani Dil ile bütünleşmiş dil anlamına gelmetedir.
Peki dil ile bütünleşmek ne demektir. Birazda bundan bahsedeyim.
Normalde sql sorgularını yazarken unicode şeklinde yazıyoruz. Yani aşağıdaki gibi yazıyoruz.
SqlDataAdapter arama = new SqlDataAdapter("select * from ogrenciler where TC like'%" + txtTCara.Text + "%' and ad like '%" + txtAdAra.Text + "%' and soyad like '%" + txtSoyadAra.Text + "%'", bag);
DataTable dt = new DataTable();
arama.Fill(dt);
dt.Dispose();
Yukarıdaki yazdığım basit bir Sql arama sorgusudur. Gördüğünüz gibi bütün sql sorguları tırnak işaretleri arasına yazılı durumda. Linq ise bu şekilde değilde direk olarak C# veya vb.net kodu şeklinde yazılır.
using (DataClassFileDataContext linq = new DataClassFileDataContext())
{
int say = (from p in linq.users select p).Count();
var sorgu = (from p in linq.users
where p.isim.Contains(txtad.Text)
select new
{
p.id,
fullname = p.ad+ " " + p.soyad,
p.mail,
p.durum,
}).ToList();
listbox1.DataSource = sorgu;
listbox1.DataBind();
}
Yukarıdaki kodlar da arama kodlarıdır. Linq to Sql ile kodlarımızı C# dili ile yazıyoruz Normal Sql de ise C# içinde Unicode olarak yazıyoruz.
Peki niçin Linq To Sql:
Linq To Sql ile sorgular Normal Sqlden çok daha hızlı çalışmaktadır. Yani Linq To sql ile oluşan hataları en aza indirgemek amacıyla kodları nesneler gibi yazarız. Nasıl ki C# ile kod yazarken Editör yazdıklarımızı tamamlar Linq to Sql ilede biz öyle kod yazarız.
Böylece daha kısa ve basit kodlarla daha hızlı bir şekilde verilere ulaşırız. Bunun yanında kodlardaki mantık hatalarını bulup çözmemiz daha kolay olur. Öteki türlü sorunu bulabilmek için noktalama işaretlerine kadar bütün Sql kodlarını incelememiz gerekmektedir. İşte sadece bu özelliği için bile Linq To Sql ile kod yazılır bence.
Neyse peki linq to sql ile temel Sql sorguları nasıl yapılıyor şimdi bunları sıra ile göreceğiz.
Linq To Sql ile Insert Sorgusu :
Şimdi aşağıda sorgu adını vereceğim ve kodları açıklayacağım
using (DataClassFileDataContext linq = new DataClassFileDataContext())
{
users user = new users();
{
user.ad= txtadi.Text;
user.soyad= txtsoyadi.Text;
user.mail= txtmail.Text;
user.durum= txtdurum.Text;
}
linq.users.InsertOnSubmit(user);
linq.SubmitChanges();
}
using (DataClassFileDataContext linq = new DataClassFileDataContext())
Daha sonra ise:
users user = new users();
{
user.ad= txtadi.Text;
user.soyad= txtsoyadi.Text;
user.mail= txtmail.Text;
user.durum= txtdurum.Text;
}
Bu deyim ile tablomuza bir değişken atıyoruz ve tablomuzun hangi kolonuna hangi veriyi ekleyeceğimizi belirliyoruz. Ve en sonunda ise aşağıdaki sorgu ilede ekleme işlemini tamamlıyoruz
linq.users.InsertOnSubmit(user);
linq.SubmitChanges();
Linq To Sql ile Veri Seçme İşlemi:
Aşağıdaki sorgu ile Linq To Sql ile veritabanından veri seçebiliyoruz. Önce sorguyu yazıp sonra kodları anlatacağım.
using (DataClassFileDataContext linq = new DataClassFileDataContext())
{
var sorgu = (from p in linq.users
where p.ad.Contains(txtad.text)
select new
{
p.id,
ad_soyad= p.ad+ " " + p.soyad,
p.mail,
p.durum
}).ToList();
DataGridView1.DataSource = sorgu;
DataGridView1.DataBind();
}
İlk baştaki komutu anlatmayacağım tekrardan yukarıda belirtmiştim zaten şimdi burada sorgu kısmını anlatacağım önemli olan yer burası çünkü
var sorgu = (from p in linq.users
where p.ad.Contains(txtad.text)
select new
{
p.id,
ad_soyad= p.ad+ " " + p.soyad,
p.mail,
p.durum
}).ToList();
Burada sorgu değişkenini var türünde oluşturmamozon sebebi gelecek olan sonuc normal değişken türü olmadığı içindir. Var değişkeni her türlü değişkeni kabul eder. daha sonra sorguda ise
from p in linq.users where p.ad.Contains(txtad.text)
select new
{
p.id,
ad_soyad= p.ad+ " " + p.soyad,
p.mail,
p.durum
}).ToList();
DataGridView1.DataSource = sorgu;
DataGridView1.DataBind();
Linq To Sql ile arama işlemi bu kadar. Sırada silme işlemi var şimdide ona bakalım.
Linq To Sql ile Silme İşlemi :
Silme işlemi oldukça basit ve kısadır arkadaşlar
var sorgu = (from p in linq.users where p.id.ToString() == lblSilId.Text select p).First();
linq.users.DeleteOnSubmit(sorgu);
linq.SubmitChanges();
ilk satırdaki sorgu ile silecek olduğumuz veriyi seçiyoruz.
ikinci satırdaki komutla silme işlemini yapıyoruz
Üçüncü satırdaki komutla da değişiklikleri kaydedip tablomuzu yeniliyoruz.
Ve son olarak Linq To Sql ile Veri Güncelleme İşlemi:
string id = txtid.text;
using (DataClassFileDataContext linq = new DataClassFileDataContext())
{
var user = (from p in linq.users where p.id.ToString() == id select p).First();
user.ad= txtadi.Text;
user.soyad= txtsoyadi.Text;
user.mail= txtmail.Text;
user.durum= txtdurum.Text;
linq.SubmitChanges();
}
Akabindeki ilk sorguda veri seçme işlemi yapıyoruz. Silme işleminde olduğu gibi ve onların altındaki alanda ise kolonları eşleme yapıyoruz. Ekleme işleminde olduğu gibi.
En sonunda ise bu değişiklikleri olduğu gibi kaydet dioruz ve tablomuzu güncellemiş oluyoruz.
Aslına bakarsanız güncelleme işlemi ekleme ve silme işleminin karışımıdır. İkisininde özelliklerini kullanır.
Güncelleme işlemide bu kadar arkadaşlar.
Herkese İyi çalışmalar -- Takipte Kalın
Burak Hamdi TUFAN
Comments