Sunum yükleniyor. Lütfen bekleyiniz

Sunum yükleniyor. Lütfen bekleyiniz

Veritabanı İşlemleri. Bu bölümde; Veritabanı bağlantısı Komutların Yürütülmesi ADO.NET Nesne Modeli kavramları incelenecektir.

Benzer bir sunumlar


... konulu sunumlar: "Veritabanı İşlemleri. Bu bölümde; Veritabanı bağlantısı Komutların Yürütülmesi ADO.NET Nesne Modeli kavramları incelenecektir."— Sunum transkripti:

1 Veritabanı İşlemleri

2 Bu bölümde; Veritabanı bağlantısı Komutların Yürütülmesi ADO.NET Nesne Modeli kavramları incelenecektir.

3 ADO.NET (ActiveX Data Objects) ADO.NET, var olan Windows API’lerinden çok daha fazlasıdır..NET öncesinde var olan ADO ile benzerlik taşısa da, veriye erişim için kullandıkları sınıflar ve metotlar oldukça farklıdır. ADO.NET 4 farklı istemci namespace ile birlikte gelmektedir (SQL Server, Oracle, ODBC veri kaynakları için ve OLEDB veri kaynakları için)

4 Veri Kaynağı & Veritabanı (Data Source & Database) Veri kaynağı kavramı ile veritabanı kavramı farklıdır. XML, MS Excel, metin dosyası vb. veri kaynağına örnek olarak verilebilir. Veritabanları da veri kaynaklarından bir tanesidir.

5 ODBC (Open Database Connectivity): Microsoft’un veritabanlarına programlama dillerinde erişmek için ortaya koyduğu bir standartdır. OLEDB: ODBC’deki dll’lerden apileri çağırmak yerine COM nesneleri üzerinden erişilen halidir. ODBC & OLEDB

6 ODBC ve OLEDB teknolojilerini destekleyen veritabanları, bu teknolojiler sayesinde hemen her uygulamadan erişilebilir hale gelir. Bu yapılar, veritabanlarına erişim için ortak kabul gören bir arabirim oluştururlar.

7 NameSpaceTanım System.DataBütün şablon tipli veri erişim sınıfları bulunur. System.Data.CommonDahili veri sağlayıcıları tarafından paylaşılan sınıflar System.Data.OdbcODBC sağlayıcılarının sınıfları System.Data.OleDbOLEDB sağlayıcılarının sınıfları System.Data.ProviderBaseYeni temel sınıflar ve connection factory sınıfları System.Data.OracleOracle sağlayıcı sınıfları

8 NameSpaceTanım System.Data.SqlSQL Server’ın veriye erişimi için yeni şablon arayüzler ve sınıflar System.Data.SqlClientSQL Server sağlayıcı sınıfları System.Data.SqlTypesSQL Server Veri Türleri İster SQL Server, isterseniz OLEDB sınıflarını kullanıyor olun, ADO.NET’in kendisi bir çok farklı sınıf içerir.

9 ADO.NET Mimarisi

10 ADO.NET bu kavramlar doğrultusunda kendisine has sınıflar içermektedir.

11 NameSpaceTanım DataSetBu nesne, VT ile bağlantı olmadan da çalışabilir. Farklı DataTable’lar ve bunlar arasındaki ilişkileri barındırır. DataTableDataColumn’lar bir araya gelerek oluşurlar. Bir veya daha çok DataRow içerir. DataRowBirden çok değeri içerir (Kayıtlar) DataColumnBu nesne, bir sütunun tanımlamasını içerir. DataRelationDataSet içerisindeki DataTable’lar arasındaki bağlantıdır. ConstraintDataColumn sınıfı için kural tanımlar.

12 Özel Veritabanı Sınıfları Ortak sınıflar olduğu gibi ADO.NET, veritabanına özel sınıflar da içerir. Bu sınıflar System.Data namespace’de tanımlanmış olan arayüz sınıflarını implement ederler. Örneğin hem SqlConnection hem de OleDbConnection sınıfları DbConnection sınıfından türemişlerdir.

13 Kategoriİlgili Sınıflar CommandSqlCommand, OleDbCommand, OracleCommand ve ODBCCommand DataTableDataColumn’lar bir araya gelerek oluşurlar. Bir veya daha çok DataRow içerir. DataRowBirden çok değeri içerir (Kayıtlar) DataColumnBu nesne, bir sütunun tanımlamasını içerir. DataRelationDataSet içerisindeki DataTable’lar arasındaki bağlantıdır. ConstraintDataColumn sınıfı için kural tanımlar.

14 Veritabanı Bağlantısı Bir veritabanına bağlanmak için, bağlantı parametrelerini (vt’nin bulunduğu makine, erişim yetkileri) sağlamak gerekir.

15 İki farklı bağlantı sınıfı dahil oldukları hiyerarşik sistem gösterilmektedir.

16 using System; using System.Data.SqlClient; namespace DbAccess { class Program { static void Main(string[] args) { string source = "server=BORA-BILGISAYAR\\SQLEXPRESS;integrated security=SSPI;database=NORTHWND"; SqlConnection conn = new SqlConnection(source); conn.Open(); Console.WriteLine("VT Bağlantısı sağlandı"); conn.Close(); Console.WriteLine("VT Bağlantısı kesildi"); } SSPI : Security Support Provider Interface Windows ortamında doğrulama (authentication) işleminde kullanılan arabirimdir.

17 SQL Server farklı modlarda doğrulamalara sahiptir. SQL Server’a bağlanmak için Windows Authentication yerine SQL Server’da yetkili olan kullanıcıların da bağlanmasına izin verilebilir (uid/password gibi).

18 Bağlantı String’ini Yönetmek.NET 2.0 ile birlikte bağlantı stringini belirli bir yerde saklamak mümkündür. Böylelikle VT değiştiğinde kaynak kod üzerinde çok fazla bir değişiklik yapılmasına gerek kalmaz. Bağlantı stringi “Application Configuration File” (App.config) içerisinde XML olarak saklanabilir.

19

20 using System; using System.Data.SqlClient; using System.Configuration; namespace DbAccess { class Program { static void Main(string[] args) { string s1 = ConfigurationManager.ConnectionStrings["VT"].ConnectionString; SqlConnection conn = new SqlConnection(s1); conn.Open(); Console.WriteLine("VT Bağlantısı sağlandı"); conn.Close(); Console.WriteLine("VT Bağlantısı kesildi"); }

21 Komut Türleri (Command Types) Komutlar, en basit haliyle SQL ifadelerini barındıran textlerdir. Komutlar stored procedure olabileceği gibi tablodan satır ve sütun isimlerini de döndürebilir.

22 static void Main(string[] args) { string s1 = ConfigurationManager.ConnectionStrings["VT"].ConnectionString; string select = "SELECT ContactName,CompanyName FROM Customers"; SqlConnection conn = new SqlConnection(s1); conn.Open(); SqlCommand cmd = new SqlCommand(select, conn); conn.Close(); }

23 Bu yapıda 3 tür Command bulunmaktadır: Text StoredProcedure TableDirect

24 Komut TürüÖrnek Text (Varsayılan) String select = “SELECT ContactName FROM Customers”; SqlCommand cmd = new SqlCommand(select,conn) StoredProcedure SqlCommand cmd = new SqlCommand(“CustOrderHist”,conn); cmd.CommandType=CommandType.StoredProcedure; CK”); TableDirect OleDbCommand cmd=new OleDbCommand(“Categories”,conn); cmd.Commandtype=CommandType.TableDirect //Tablonun tamamı elde edilmekte //Sadece OleDb’de kullanılabilmektedir.

25 Komutların Yürütülmesi (Execution) Komutların türlerinin belirlenmesinden sonra bu komutların yürütülmesi gerekmektedir. Komutun yürütülmesinden sonra geriye ne döneceğine bağlı olarak farklı stratejiler bulunmaktadır.

26 MetotlarAçıklamaları ExecuteNonQuery() Komutu icra eder fakat herhangi bir çıktı vermez. (VT’da kayıtları değiştirmek, silmek, yeni bir kayıt eklemek vb. işlemler). Bu metodun geri dönüş değeri komutun çalıştırıldıktan sonra etkilediği kayıt sayısıdır. ExecuteReader() Komutu icra eder ve IDataReader türünde değer geri döndürür. Bu metot, SQL ifadesinin SELECT komutu içerdiği durumlarda kullanılır. ExecuteScalar() Komutu icra eder ve geriye tek bir değer döndürür. (Örn: Tablodaki kayıt sayısı gibi) ExecuteXmlReader() Komutu icra eder ve XmlReader nesnesi döndürür.

27 ExecuteNonQuery() static void Main(string[] args) { string source = ConfigurationManager.ConnectionStrings["VT"].ConnectionString; string select = "UPDATE Customers SET ContactName='Bora' WHERE ContactName='Mary Saveley'"; SqlConnection conn = new SqlConnection(source); conn.Open(); SqlCommand cmd = new SqlCommand(select, conn); int rowsreturned = cmd.ExecuteNonQuery(); Console.WriteLine("Değişen satır sayısı = {0}",rowsreturned); conn.Close(); }

28 ExecuteReader() static void Main(string[] args) { string source = ConfigurationManager.ConnectionStrings["VT"].ConnectionString; string select = "SELECT ContactName,CompanyName FROM Customers"; SqlConnection conn = new SqlConnection(source); conn.Open(); SqlCommand cmd = new SqlCommand(select, conn); SqlDataReader reader = cmd.ExecuteReader(); while (reader.Read()) { Console.WriteLine("Contact:{0,-20} Company:{1}",reader[0],reader[1]); } conn.Close(); }

29 ExecuteScalar() static void Main(string[] args) { string source = ConfigurationManager.ConnectionStrings["VT"].ConnectionString; string select = "SELECT COUNT(*) FROM Customers"; SqlConnection conn = new SqlConnection(source); conn.Open(); SqlCommand cmd = new SqlCommand(select, conn); object o = cmd.ExecuteScalar(); Console.WriteLine(o); conn.Close(); }


"Veritabanı İşlemleri. Bu bölümde; Veritabanı bağlantısı Komutların Yürütülmesi ADO.NET Nesne Modeli kavramları incelenecektir." indir ppt

Benzer bir sunumlar


Google Reklamları