C# Programlama Dilinde Veritabanı İşlemleri | Emre Akkaya

C# Programlama Dilinde Veritabanı İşlemleri

C# Programlama Dilinde Veritabanı İşlemleri

Bu makale, C# dilinde veritabanı işlemlerini ele alır ve veritabanı işlemlerinin C# dilindeki önemini açıklar.

C# programlama dilinde veritabanı işlemleri oldukça önemlidir. Veritabanı işlemleri, verilerin kaydedilmesi, güncellenmesi ve silinmesi gibi işlemleri kolaylaştırır. C# dilinde veritabanı işlemleri için farklı veritabanı yönetim sistemleri (DBMS) kullanılabilir.

C# dilinde veritabanı işlemleri için ADO.NET kullanılabilir. ADO.NET, veritabanlarına erişmek için kullanılan bir teknolojidir ve C# dilinde yaygın olarak kullanılır. ADO.NET, veritabanı işlemlerinin kolay ve güvenli bir şekilde yapılmasını sağlar.

C# dilinde veritabanı işlemleri için Entity Framework (EF) kullanılabilir. EF, bir ORM (Object-Relational Mapping) aracıdır ve veritabanı işlemlerinin daha kolay bir şekilde yapılmasını sağlar. EF, C# dilindeki veritabanı işlemlerinin yapılmasını kolaylaştırır ve kodun daha okunaklı hale gelmesini sağlar.

Veritabanı işlemleri, C# programlama dilinde oldukça önemlidir ve verilerin doğru ve güvenli bir şekilde saklanmasını sağlar. C# programlama dilini öğrenenlerin, veritabanı işlemleri konusunda bilgi sahibi olmaları önemlidir.

C# programlama dilinde veritabanı işlemleri oldukça yaygın bir kullanım alanına sahiptir. Bu makele üzerinde bilinmesi gereken bilgileri açıklayacağım.

Veritabanı Bağlantısı Oluşturma:

C# programlama dilinde veritabanı işlemleri yapabilmek için öncelikle bir veritabanı bağlantısı oluşturmak gerekir. Bu bağlantı, genellikle SqlConnection sınıfı ile gerçekleştirilir. SqlConnection sınıfı, bir SQL Server veritabanı ile iletişim kurabilmek için gerekli olan tüm işlevleri sağlar. Aşağıdaki örnek, SqlConnection sınıfı kullanarak bir SQL Server veritabanına bağlanmayı göstermektedir:

using System.Data.SqlClient;

string connectionString = "Server=myServerAddress;Database=myDataBase;User Id=myUsername;Password=myPassword;";
SqlConnection connection = new SqlConnection(connectionString);

Veritabanı Sorgusu Oluşturma:

Veritabanı bağlantısı oluşturulduktan sonra, veritabanından veri okumak, veri eklemek, veri güncellemek veya veri silmek için SQL sorguları kullanılır. Bu sorgular, SqlCommand sınıfı ile oluşturulabilir. Aşağıdaki örnek, SqlCommand sınıfı kullanarak bir SQL Server veritabanında bir SELECT sorgusu oluşturmayı göstermektedir:

SqlCommand command = new SqlCommand(“SELECT * FROM myTable”, connection);

Veritabanı Sorgusunu Çalıştırma:

Veritabanı sorgusu oluşturulduktan sonra, ExecuteReader() veya ExecuteNonQuery() gibi yöntemler kullanılarak sorgu çalıştırılır. ExecuteReader(), bir SELECT sorgusunun sonuçlarını döndürürken, ExecuteNonQuery(), INSERT, UPDATE veya DELETE gibi bir sorgunun etkilenen satır sayısını döndürür. Aşağıdaki örnek, SqlCommand sınıfı kullanarak bir SQL Server veritabanındaki bir SELECT sorgusunu çalıştırmayı ve sonuçları SqlDataReader sınıfı ile okumayı göstermektedir:

SqlDataReader reader = command.ExecuteReader();

while (reader.Read())
{
Console.WriteLine(reader[“myColumn”].ToString());
}

Veritabanı İşlemlerinde Hata Yönetimi:

try
{
connection.Open();
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
}

Veritabanı İşlemlerinde Parametre Kullanımı:

Veritabanı sorguları, genellikle dinamik olarak oluşturulur. Bu nedenle, verilerin güvenli bir şekilde gönderilmesi için parametreler kullanılır. Aşağıdaki örnek, bir SQL Server veritabanına parametre kullanarak INSERT sorgusu göndermeyi göstermektedir:

string insertQuery = “INSERT INTO myTable (myColumn1, myColumn2) VALUES (@myParam1, @myParam2)”;
SqlCommand command = new SqlCommand(insertQuery, connection);

command.Parameters.AddWithValue(“@myParam1”, “value1”);
command.Parameters.AddWithValue(“@myParam2”, “value2”);

int result = command.ExecuteNonQuery();

Veritabanı İşlemlerinde Transaksiyon Kullanımı:

Birçok durumda, birkaç veritabanı işlemi birlikte çalıştırılmalıdır. Bu işlemler, tek bir transaksiyon içinde toplanabilir. Bu şekilde, tüm işlemler başarılı bir şekilde tamamlanana kadar veritabanı güncellemeleri gerçekleştirilmez. Aşağıdaki örnek, bir SQL Server veritabanında transaksiyon kullanarak birkaç işlemi birleştirmeyi göstermektedir:

SqlTransaction transaction;

try
{
connection.Open();
transaction = connection.BeginTransaction();

SqlCommand command1 = new SqlCommand(“UPDATE myTable SET myColumn1 = ‘value1′”, connection, transaction);
SqlCommand command2 = new SqlCommand(“UPDATE myTable SET myColumn2 = ‘value2′”, connection, transaction);

command1.ExecuteNonQuery();
command2.ExecuteNonQuery();

transaction.Commit();
}
catch (Exception ex)
{
transaction.Rollback();
Console.WriteLine(ex.Message);
}
finally
{
connection.Close();
}

Bu örnek, iki UPDATE sorgusunu birleştirir ve tüm işlemler başarılı olana kadar veritabanı güncellemelerini gerçekleştirmez.

Veritabanı İşlemlerinde ORM Kullanımı:

ORM (Object-Relational Mapping), C# programlama dilinde veritabanı işlemlerini kolaylaştırmak için kullanılan bir tekniktir. ORM, veritabanı sorgularını yazmak yerine, verileri bir nesne olarak ele alır ve nesneler arasındaki ilişkileri yönetir. Entity Framework, popüler bir ORM aracıdır ve C# programlama dilinde sıklıkla kullanılır.

using Microsoft.EntityFrameworkCore;

public class MyContext : DbContext
{
public DbSet<MyEntity> MyEntities { get; set; }

protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
{
optionsBuilder.UseSqlServer(“Server=myServerAddress;Database=myDataBase;User Id=myUsername;Password=myPassword;”);
}
}

public class MyEntity
{
public int Id { get; set; }
public string MyColumn1 { get; set; }
public string MyColumn2 { get; set; }
}

// Veritabanına yeni bir nesne eklemek için:
using (var context = new MyContext())
{
var newEntity = new MyEntity { MyColumn1 = “value1

 

Entity Framework (EF) Kullanımı:

C# programlama dili, veritabanı işlemleri için Entity Framework (EF) adlı bir ORM (Object Relational Mapping) aracını desteklemektedir. EF, veritabanı tabloları ve C# sınıfları arasındaki ilişkiyi yönetir ve nesne yönelimli programlama (OOP) yaklaşımıyla veritabanı işlemlerini yapmamızı sağlar.

EF kullanarak, veritabanına kayıt eklemek, silmek, güncellemek, verileri sorgulamak ve birçok diğer işlemi yapmak oldukça kolaydır. Aşağıda, EF kullanarak veritabanı işlemlerinin nasıl yapılabileceğine dair örnekler verilmiştir:

Veritabanına Kayıt Ekleme:

using (var context = new MyDbContext())
{
var product = new Product { Name = “Laptop”, Price = 1500 };
context.Products.Add(product);
context.SaveChanges();
}

Veritabanındaki Kaydı Güncelleme:

using (var context = new MyDbContext())
{
var product = context.Products.FirstOrDefault(p => p.Id == 1);
if (product != null)
{
product.Price = 2000;
context.SaveChanges();
}
}

Veritabanındaki Kaydı Silme:

using (var context = new MyDbContext())
{
var product = context.Products.FirstOrDefault(p => p.Id == 1);
if (product != null)
{
context.Products.Remove(product);
context.SaveChanges();
}
}

Veritabanındaki Kayıtları Sorgulama:

using (var context = new MyDbContext())
{
var products = context.Products.Where(p => p.Price > 1000).ToList();
foreach (var product in products)
{
Console.WriteLine($”Product Name: {product.Name}, Price: {product.Price}”);
}
}

Yukarıdaki örneklerde, MyDbContext adlı bir DbContext sınıfı kullanılmıştır. DbContext sınıfı, Entity Framework’ün merkezi sınıfıdır ve veritabanı işlemlerini yönetir. Products adlı bir DbSet sınıfı, veritabanındaki “Products” adlı tabloya karşılık gelir ve Add, Remove, FirstOrDefault, Where vb. yöntemlerle veritabanı işlemleri yapılabilir.

EF, C# programlama dilinde veritabanı işlemlerini yapmak için güçlü ve kullanımı kolay bir araçtır. Veritabanı işlemlerini kodlamak yerine, EF’yi kullanarak daha kolay ve daha verimli bir şekilde veritabanı işlemlerini yapabilirsiniz.

 

Veritabanı Bağlantısı ve Bağlantı Dizeleri:

C# programlama dili ile veritabanı işlemleri yaparken, veritabanına bağlanmak için bir bağlantı dizisi (connection string) kullanılır. Bağlantı dizisi, veritabanının konumunu, adını, kullanıcı adı, şifre vb. bilgileri içerir.

Aşağıdaki örnek, bir SQL Server veritabanına bağlanmak için kullanılabilecek bir bağlantı dizisi göstermektedir:

Server=myServerAddress;Database=myDataBase;User Id=myUsername;Password=myPassword;

Bağlantı dizisinde yer alan “Server” öğesi, veritabanının bulunduğu sunucunun adını veya IP adresini belirtir. “Database” öğesi, kullanılacak veritabanının adını belirtir. “User Id” ve “Password” öğeleri, veritabanına erişmek için kullanılacak kullanıcı adı ve şifreyi belirtir.

C# programlama dili ile veritabanı işlemleri yaparken, bağlantı dizeleri değişkenlerde veya dosyalarda saklanabilir. Aşağıdaki örnek, bir bağlantı dizesini bir değişkende saklamak için kullanılır:

string connectionString = “Server=myServerAddress;Database=myDataBase;User Id=myUsername;Password=myPassword;”;

Bağlantı dizesi, veritabanı işlemleri yaparken kullanmak için DbContext sınıfına aktarılabilir. Aşağıdaki örnek, DbContext sınıfının nasıl oluşturulacağını ve bağlantı dizesinin nasıl kullanılacağını göstermektedir:

using System.Data.SqlClient;

public class MyDbContext : DbContext
{
public MyDbContext() : base(new SqlConnection(“Server=myServerAddress;Database=myDataBase;User Id=myUsername;Password=myPassword;”), true)
{
}

public DbSet<Product> Products { get; set; }
}

Yukarıdaki örnekte, SqlConnection sınıfı kullanılarak bağlantı dizesi oluşturulmuştur. DbContext sınıfının yapıcı metodu, SqlConnection sınıfını kullanarak bağlantı dizesiyle bir DbContext örneği oluşturur. “true” değeri, DbContext örneğinin dispose edilmesinde SqlConnection nesnesinin de dispose edilmesini sağlar.

Bağlantı dizeleri, veritabanı işlemleri yaparken oldukça önemlidir. Bağlantı dizelerinin doğru şekilde oluşturulması, veritabanına başarılı bir şekilde bağlanmak için kritik öneme sahiptir.

 

LINQ Kullanarak Veritabanı İşlemleri:

C# programlama dili ile veritabanı işlemleri yaparken, LINQ (Language-Integrated Query) kullanarak veritabanı sorguları yapmak oldukça yaygın bir yöntemdir. LINQ, C# programlama diline entegre edilmiş bir sorgu dili ve sorgu işleme aracıdır.

LINQ kullanarak, veritabanındaki verileri sorgulayabilir, filtreleyebilir, gruplayabilir, birleştirebilir ve sıralayabilirsiniz. Aşağıdaki örnek, bir veritabanındaki “Products” tablosundan ürünleri fiyatlarına göre sıralamak için LINQ kullanımını göstermektedir:

using (var context = new MyDbContext())
{
var products = from p in context.Products
orderby p.Price ascending
select p;

foreach (var product in products)
{
Console.WriteLine(“{0} – {1}”, product.Name, product.Price);
}
}

Yukarıdaki örnekte, MyDbContext sınıfından bir örnek oluşturulmuştur. “from” anahtar kelimesi kullanarak, Products tablosundaki her bir ürünün seçilmesi sağlanmıştır. “orderby” anahtar kelimesi kullanılarak, ürünler fiyatlarına göre artan sıraya göre sıralanmıştır. “select” anahtar kelimesi kullanılarak, sıralanmış ürünler seçilerek döngü kullanılarak listelenmiştir.

LINQ kullanarak veritabanı sorguları yaparken, sorguların doğru şekilde yazılması oldukça önemlidir. Yanlış yazılmış sorgular performans problemlerine neden olabilir veya beklenmeyen sonuçlar üretebilir. Ayrıca, LINQ sorguları yoluyla veritabanındaki verileri işlerken, veri bütünlüğü de sağlanmalıdır.

 

Entity Framework Kullanarak Veritabanı İşlemleri:

Entity Framework, C# programlama dili ile veritabanı işlemleri yapmak için kullanılan bir ORM (Object-Relational Mapping) aracıdır. ORM, nesne yönelimli programlama ve ilişkisel veritabanları arasındaki ilişkiyi yöneten bir teknolojidir. Entity Framework, veritabanı işlemlerinin yapılması için LINQ sorguları kullanır ve sorguları veritabanı sorgularına dönüştürür.

Entity Framework kullanarak, veritabanındaki verileri ekleme, silme, güncelleme ve sorgulama işlemleri yapabilirsiniz. Aşağıdaki örnek, Entity Framework kullanarak veritabanındaki “Products” tablosuna yeni bir ürün eklemek için nasıl kullanılacağını göstermektedir:

using (var context = new MyDbContext())
{
var newProduct = new Product { Name = “New Product”, Price = 9.99 };

context.Products.Add(newProduct);
context.SaveChanges();
}

Yukarıdaki örnekte, MyDbContext sınıfından bir örnek oluşturulmuştur. Yeni bir Product nesnesi oluşturularak, adı ve fiyatı belirlenmiştir. “Add” metodu kullanılarak, yeni ürün veritabanına eklendi. “SaveChanges” metodu kullanılarak, veritabanındaki değişiklikler kaydedilmiştir.

Entity Framework kullanarak veritabanı işlemleri yaparken, veritabanı modelleri de oluşturmanız gerekmektedir. Veritabanındaki her bir tablo, C# programlama dilinde bir sınıf olarak temsil edilir. Bu sınıfların her bir özelliği, veritabanındaki her bir sütun ile eşleştirilir. Ayrıca, Entity Framework kullanarak veritabanındaki verileri işlerken, veri bütünlüğü de sağlanmalıdır.

 

/* ]]> */