C# İle Veri Tabanı İşlemlerine Giriş
Veri Tabanı
Veri tabanı, verilerin elektronik olarak depolandığı; üzerlerinde sorgulama, ekleme, güncelleme ve silme gibi işlemlerin yapılabildiği sistemlere verilen genel isimdir. Verilerin nasıl saklanıp ve kullanılacağına bağlı olarak birçok veri tabanı yapısından söz etmek mümkündür. Bunlar; İlişkisel Veri Tabanları, Nesne Odaklı Veri Tabanları, Dağıtılmış Veri Tabanları, Veri Ambarları, NoSQL Veri Tabanları, Grafik Veri Tabanları, OLTP Veri Tabanları, Bulut Veri Tabanları, Çoklu Model Veri Tabanı, Belge/JSON Veri Tabanı ve Kendi Kendini Yöneten Veri Tabanları olarak sıralanabilir. Bir programlama dili ile veri tabanı sistemleri üzerinde işlem yapabilmek için tercih edilebilecek birçok veri erişim teknolojisi bulunmaktadır. Bunlar; ODBC, DAO, RDO, OLE DB, ADO, ADO.NET, LINQ TO SQL ve Entity Framework'dir.
ADO.NET (Activex Data Object)
ADO, ActiveX Data Object'in kısaltmasıdır ve Microsoft tarafından SQL Server, Access, XML vb. gibi birçok veri kaynağı üzerinde işlem yapabilmek için üretilmiş bir teknolojidir. ADO.NET ise .NET platformunun çıkmasıyla birlikte ADO özelliklerinin geliştirilerek .NET platformuna dahil edilmiş halidir. ADO.NET Bileşenleri; Connection, Command, DataReader, DataSet ve DataAdapter'dir.
Connection
Connection bir veri kaynağı ile yazılım arasındaki bağlantının kurulmasını sağlayan nesnedir. Uygulama ile veri kaynağı arasında bağlantı kurulduğunda Connection nesnesi aracılığı ile SQL komutları çalıştırılır. Uygulamanın kaynak veri tabanı ile bağlantı kurabilmesi için bir takım bilgilere ihtiyaç vardır. Bu bilgileri içeren bağlantı dizesine “Connection String” adı verilir. SqlConnection nesnesinin hangi veri kaynağına bağlanacağını belirlemek için bir bağlantı dizesi tanımlanıp bunun da ilgili bağlantı nesnesinin “ConnectionString” özelliğine atanması gerekmektedir.
Command
Command, Connection nesnesinde belirtilen veri kaynağı üzerinde SQL komutlarının çalıştırılmasını sağlar. “CommandType” özelliği ile çalıştırılacak komut tipi belirlenebilir. “CommandType” özelliği üç (3) adet değer alabilmektedir. Bu değerler; Text, Stored Procedure ve TableDirect'dir. Command nesnesine ait dört adet metot bulunmaktadır. SQL komutlarını çalıştırabilmek için kullanılan metotlar; ExecuteScalar, ExecuteNonQuery, ExecuteReader ve ExecuteXmlReader. Çalışmakta olan bir SQL komutunu iptal etmek için Cancel metodu kullanılır.
DataReader
DataReader bir veri kaynağından veri okumak (readonly) için kullanılır. Veri tabanından alınan veriler çalışma zamanında Read() metodu ile satır satır okunarak işlenir.
DataSet
DataSet içerisinde ilişkisel verileri tablo yapısında barındıran bir DataTable koleksiyonudur. Veri tabanından alınan veriler DataSet içerisindeki DataTable’larda saklanır. System.Data isim uzayında yer alır.
DataAdapter
DataAdapter veri kaynağı ile DataSet nesnesi arasında bir köprü olarak tanımlanabilir. Diğer bir tanıma göre ise DataAdapter veri kaynağı ile DataSet arasındaki çift taraflı veri akışını kolay, verimli ve performanslı bir şekilde sağlar.