Veritabanı İşlemleri.

Slides:



Advertisements
Benzer bir sunumlar
Serileştirme (Serialization)
Advertisements

Visual Basic .net VeriTabanı Uygulamaları
VİSUAL STUDİO VERİ TABANI İŞLEMLERİ
T sql-diğer komutlar Metin Akbulut.
LINQ Language Integrated Query
C# - Metotlar.
COME 339 JAVA-SQL BAĞLANTISI
SCANNER SINIFI ve KLAVYEDEN VERİ OKUNMASI
VB.net ile SQL SERVER’a bağlanmak
III.Oturum: SQL ile Verileri İşlemek
LINQ { C# 3.0 ve Language Integrated Query }
A. Betül Oktay Elif Edoğan Zeliha Çetin
GRUP HazIrlayanlar EU TE AMO
İSİM UZAYLARI.
dataReader- DataAdapter
Microsoft Danışman Öğrenci
Namespaces and .NET Class Library (İsim Alanları Sınıf Kütüphanesi)
Görsel Programlama II Ders 1 Öğr.Gör. Mustafa KARABULUT.
Nesne Tabanlı Programlama Dersi Edirne Kız Teknik ve Meslek Lisesi Hazırlayan : Nuri AVCI
Veritabanı Yönetim Sistemleri Hızlı ve Kısa Giriş
Bilgisayar Mühendisliği Bölümü
İSİM UZAYLARI (NAMESPACE).
DİZİLER.
BPR152 ALGORİTMA VE PROGRAMLAMA - II
DELEGATE OOP-UYG.
Erişim Denetimi, Fonksiyon
C# Metot Overloading (Aşırı yükleme)
İSİM UZAYLARI (NAMESPACE)
PROGRAMLAMA DİLLERİNE GİRİŞ Ders 7: Dosyalama İşlemleri Yrd. Doç. Dr. Altan MESUT Trakya Üniversitesi Bilgisayar Mühendisliği.
NESNEYE DAYALI PROGRAMLAMA
İş Parçacıkları Thread(s)
LINQ (Language Integrated Query)
Java Sınıf ve Nesne Kavramı UML Gösterimi
Net Class Framework ’ ün en üst yapısına İsim Uzayı denir. İsim uzayları ; pascal programlama dilinde 1990 ve hatta öncesinden beri varolmuş, C’de yer.
Görsel Programlama II Ders 9 Öğr.Gör. Mustafa KARABULUT.
Iletisim Icin : Blog : E - Mail :
Ders 2- Veri türleri, Karar ve Döngü Yapıları, Görsel Kontröller Aslı Ergün.
İSİM UZAYI Bir programın organizasyonu ve erişebilirliği üzerinde size daha fazla kontrol sağlayan C# özelliğidir.”Namescapes” olarak da bilinir.
İSİM UZAYLARI.
Önceki Dersi Hatırlama !!
C# ile Seri İletişim Aslı Ergün.
SQL SERVER Giriş A. Betül Oktay Ayşe Betül Oktay 2006.
Görsel Programlama II Ders 5 Öğr.Gör. Mustafa KARABULUT.
Görsel Programlama II Ders 3 Öğr.Gör. Mustafa KARABULUT.
Kalıtım , Sınıf Asli Ergün.
Veri Tabanı Yönetim Sistemleri I
Demet AYDIN METODLAR Demet AYDIN
SQL Komutları (2) Uzm. Murat YAZICI.
LINQtoSQL Silverligth Uygulamalarında LinqtoSql. LINQ (Language Integrated Query) özellikle dil içerisinde, Sql tarzı sorgular yazabilmemizi ve bunları.
Bil 102 Bölüm 6 Diziler.
Bil 102 Bölüm 3 Java’da Program Akış Denetimi Bil 1021.
Bilgisayar programlarının en büyük avantajı, kullanıcının işini kolaylaştırmalarıdır. Her bilgisayar programı bunu değişik metotlar kullanarak sağlar.
Ders 2- Veri türleri, Karar ve Döngü Yapıları, Görsel Kontröller
SINIFLAR ve NESNELER. İlk sınıfımızı ekleyelim class KrediHesap { public ulong HesapNo; public double Limit; public string KartSahibi; }
VERİ ERİŞİM ARABİRİMİ PROGRAMLAMA DİLLERİ KENDİ OLANAKLARIYLAVERİTABANI ERİŞİMİNİ TAM ANLAMIYLA GERÇEKLEŞTİREMEZLER. BU NEDENLE VERİ ERİŞİM ARABİRİMİ (DATA.
Gizem Tanış Bozok Üniversitesi Öğr. Görevlisi.  Veri erişimi için ADO.NET kodunu yazmak ve yönetmek zordur.  Microsoft, uygulamada veritabanı aktivitelerini.
Modül 1: Giriş. Genel Bakış Temel.NET kavramları Geliştirme ortamında gezinti Bir C# projesi oluştur Use Visual Studio.NET Veriye eriş Hata ayıkla ve.
GÜVENL İ K. Sunucu Seviyesinde Güvenlik Master Veritabanı (Kullanıcının gerekli yetkileri var mı?) Authentication Mod ◦ Windows Authentication Mod  Varsayılan.
ÖTÖ 451 Okul Yönetiminde Bilgisayar Uygulamaları R. Orçun Madran.
Asp.Net Veritabanı İşlemleri
ALGORİTMA VE PROGRAMLAMAYA GİRİŞ
Aytaç ÖZAY MS Akademik ADO.Net Editörü
C# WINDOWS UYGULAMASI HAZIRLAMA ADO.NET SUNU1-GİRİŞ FORMU OLUŞTURMA Savaş TUNÇER.
C# WINDOWS UYGULAMASI HAZIRLAMA ADO.NET SUNU3- MÜŞTERİ KAYIT FORMU OLUŞTURMA SAVAŞ TUNÇER
C# WINDOWS UYGULAMASI HAZIRLAMA ADO.NET SUNU2 -ŞİFRE GÜNCELLEME FORMU OLUŞTURMA SAVAŞ TUNÇER
VISUAL STUDIO İÇERİSİNDE VERİ TABANI BAĞLANTISI ACCESS DATA SOURCE SAVAŞ TUNÇER
VERİ TABANI VE VISUAL STUDIO SQL LOCAL DB(YEREL VERİ TABANINI SAYFAYA BAĞLAMA Savaş TUNÇER.
Asp.Net Veritabanı İşlemleri
C# ve Veri tabanı İşlemleri
Asp.Net Veritabanı İşlemleri
Sunum transkripti:

Veritabanı İşlemleri

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

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)

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.

ODBC & OLEDB 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 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.

NameSpace Tanım System.Data Bütün şablon tipli veri erişim sınıfları bulunur. System.Data.Common Dahili veri sağlayıcıları tarafından paylaşılan sınıflar System.Data.Odbc ODBC sağlayıcılarının sınıfları System.Data.OleDb OLEDB sağlayıcılarının sınıfları System.Data.ProviderBase Yeni temel sınıflar ve connection factory sınıfları System.Data.Oracle Oracle sağlayıcı sınıfları

NameSpace Tanım System.Data.Sql SQL Server’ın veriye erişimi için yeni şablon arayüzler ve sınıflar System.Data.SqlClient SQL Server sağlayıcı sınıfları System.Data.SqlTypes SQL 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.

ADO.NET Mimarisi

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

NameSpace Tanım DataSet Bu nesne, VT ile bağlantı olmadan da çalışabilir. Farklı DataTable’lar ve bunlar arasındaki ilişkileri barındırır. DataTable DataColumn’lar bir araya gelerek oluşurlar. Bir veya daha çok DataRow içerir. DataRow Birden çok değeri içerir (Kayıtlar) DataColumn Bu nesne, bir sütunun tanımlamasını içerir. DataRelation DataSet içerisindeki DataTable’lar arasındaki bağlantıdır. Constraint DataColumn sınıfı için kural tanımlar.

Ö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.

Kategori İlgili Sınıflar Command SqlCommand, OleDbCommand, OracleCommand ve ODBCCommand DataTable DataColumn’lar bir araya gelerek oluşurlar. Bir veya daha çok DataRow içerir. DataRow Birden çok değeri içerir (Kayıtlar) DataColumn Bu nesne, bir sütunun tanımlamasını içerir. DataRelation DataSet içerisindeki DataTable’lar arasındaki bağlantıdır. Constraint DataColumn sınıfı için kural tanımlar.

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.

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

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.

SQL Server farklı modlarda doğrulamalara sahiptir 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).

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.

<?xml version="1.0" encoding="utf-8" ?> <configuration> <connectionStrings> <add name="VT" providerName="System.Data.SqlClient" connectionString="Data Source=localhost\sqlexpress;integrated security=SSPI; database=NORTHWIND" /> </connectionStrings> </configuration>

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"); }

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.

static void Main(string[] args) { string s1 = ConfigurationManager 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(); }

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

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

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.

Metotlar Açı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.

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(); }

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();

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(); }