«BM364» Veritabanı Uygulamaları



Benzer belgeler
Veritabanı İşlemleri

İNTERNET PROGRAMLAMA 2 A S P. N E T. Marmara Teknik Bilimler MYO / Hafta 5 Veri Tabanı İşlemleri

1-) Veritabanımıza bağlanmak için bir SqlConnection nesnesi, 2-) Veritabanındaki bilgileri kullanmak (seçme, kaydetme, silme, güncelleme) için

Veri Merkezli Uygulamalar Bağlantılı (Connected) Veri Ortamları

Veritabanı İşlemleri

ADO.NET. Öğr. Gör. Emine TUNÇEL Kırklareli Üniversitesi Pınarhisar Meslek Yüksekokulu

Asp.Net Veritabanı İşlemleri

İleri Web Programlama

C Sharp /Veri tabanı işlemleri

«BM364» Veritabanı Uygulamaları


Modül 2: Veri Merkezli Uygulamalar ve ADO.NET e Giriş

Üst Düzey Programlama

ADO.NET nesne modeli iki ana bölümden oluşmaktadır.

VeriTabanı Uygulamaları

ADO.NET VERİTABANINA BAĞLANTI. Bir web formu üzerinden veritabanına bağlantımızı anlatacağım. UYGULAMA 1

Masa üstünde vt34.mdb dosyası var, onu projemize eklemek için, App_Data ya sağ tıkla Add Existing Item vt34.mdb adlı dosyayı seç Add

EĞİTİM : ADO.NET. Bölüm : Veriye Erişim Teknolojileri & SQL Server.Net Veri Sağlayıcısı. Konu : Veri ve Veriye Erişim Teknolojileri

LINQ Language Integrated Query Dille Bütünleştirilmiş Sorgu Bir Veri Tabanı Tablosundan Veri Gösterme

«BM364» Veritabanı Uygulamaları

22. BÖLÜM Veri Tabanı İşlemleri...527

VERİ TABANI İŞLEMLERİ (NESNE TABANLI PROGRAMLAMA TEKNİĞİ İLE)

BLG4134 Görsel Programlama III. Öğr. Grv. Aybike ŞİMŞEK

VISUAL STUDIO.NET ve FORM UYGULAMALARI

ASP.NET CLASS KULLANARAK VERİTABANI İŞLEMLERİ

BİLİŞİM TEKNOLOJİLERİ

MOBİL UYGULAMA GELİŞTİRME

Modül 1: Geliştirme Ortamını Tanımak

Veritabanı Tasarımı. Kartezyen Çarpım ve Join İşlemleri

Entity Freamwork & ADO.Net

SAKLI YORDAM (Stored Procedure) Sibel Somyürek

Arş.Gör.Muhammet Çağrı Gencer Bilgisayar Mühendisliği KTO Karatay Üniversitesi 2015

Yaptığımız web sitelerinin daha kullanışlı olması için veritabanı sistemleri ile bağlantı kurup ihtiyaca göre verileri okuyup yazmasını isteriz.

SQL Komutları (2) Uzm. Murat YAZICI

ASP.NET ORTAMINDA C# VERİTABANI UYGULAMALARI

Bölüm 10: PHP ile Veritabanı Uygulamaları

Command Nesnelerini Kullanarak Tablolarda Değişiklik Yapmak:

İnternet Programcılığı

Fonksiyonlar istenilen deger tipinde dönüs yapabilir. INT, VARCHAR deger döndürebileceğiniz gibi bir tablo da döndürebilirsiniz.

-- işareti tek satırlık açıklamalarda kullanılır. Açıklama olarak yazılan satırın önüne konulması yeterlidir.

yeni_uye_kayit.ascx UserControl sayfamızda, kaydedilmek istenen üye eğer daha önce veritabanımızda kayıtlı ise bunu buldurup kullanıcıyı uyaralım;

ORM & Hibernate. Ahmet Demirelli. SCJP 5.0, SCWCD 1.4 ahmetdemirelli@sabanciuniv.edu

İlk Konsol Uygulamamız 2 İlk Windows Uygulamamız 9.Net Framework Yapısı 18 Neler Öğrendik 19. Veri Tipleri 24 Tanımlı Veri Tipleri 27 Basit Tipler 28

TESİ. indeks. söylenebilir?? bir ilişkidir d) Hiçbiri. veya somutlaştırılmış. düzeyidir? sağlayabilir? sına. d) Hepsi. olabilir? c) Verilerin d) Hepsi

Veri Tabanı Yönetimi Lab#9

«BM364» Veritabanı Uygulamaları

Elbistan Meslek Yüksek Okulu GÜZ Yarıyılı. Öğr. Gör. Murat KEÇECĠOĞLU

Veritabanı. Ders 2 VERİTABANI

Sorgudan elde edilen değerin değişkenlere aktarılmasını sağlar. Sorgudan tek satır dönmesi gerekir, aksi durumda hata olur.

Sorgudan elde edilen değerin değişkenlere aktarılmasını sağlar. Sorgudan tek satır dönmesi gerekir. Çok satır dönerse hata verir.

Swing ve JDBC ile Database Erişimi

20461C Querying Microsoft SQL Server Modül Seviye Belirleme Testi

SQL veri tabalarına erişmek ve onları kullanmak için geliştirilmiş bir lisandır.

VERİ TABANI ve YÖNETİMİ

MySqlConnection connection; MySqlCommand command; MySqlDataReader reader; MySqlDataAdapter adapter; DataTable table;

Bu işleçlerin dışında, aşağıda belirtilen karşılaştırma işleçlerinden de yararlanılır.

Genel Kavramlar. Bilgisayar ortamında işlenebilecek durumda bulunan kayıtlar. Birbiri ile ilişkili veriler topluluğu ve veriler arası ilişkiler

Bu uygulamayı yapabilmek için SQL Server'da Query Analyzer kullanabilmekle beraber, ADO.NET bilgisine sahip olmanız gerekir.

Maltepe Üniversitesi Bilgisayar Mühendisliği Bölümü Veri Tabanı ve Yönetimi (BİL 301)

Kepware Veritabanı Ürünleri. Teknolojiye Genel Bir Bakış

OTURUM AÇMA ADLARI. Tavsiye Edilen Önhazırlık Enterprise Manager'i kullanabilmek.

Yazar :Zeydin Pala Yayınevi :Türkmen Kitabevi Konu :Yazılım Sayfa Sayısı :744 Ebat : 165 x 235 Barkod-ISBN : Baskı :İstanbul

Veritabanına Giriş. Oğuzhan Ceylan. 19 Eylül 2011

JDBC kütüphanesi, her görev için genellikle veritabanı kullanımı ile ilişkili API leri içerir:

Her Yönüyle SQL Enjeksiyonu. OWASP-Türkiye Bünyamin Demir

İLERİ VERİTABANI SİSTEMLERİ SUAT ÜSTKAN

DAO İLE SQL KOMUTLARI. Sql komutlarını artık veri tabanında kullanmaktan başka çaremiz yok arkadaşlar. Şimdi bu sql derslerimize başlayalım.

5 SQL- Yapısal Sorgulama Dili. Veritabanı 1

İngilizce'de Relational Database Management System (RDBMS) olarak ifade edilir.

SQL TRIGGERS (Tetikleyiciler)

ÜNİTE NESNE TABANLI PROGRAMLAMA-I. Uzm. Orhan ÇELİKER VERİTABANI BAĞLANTISI İÇİNDEKİLER HEDEFLER

SUNGURLU MESLEK YÜKSEKOKULU 5. T-SQL-2

Veritabanı Tasarımı. Kullanıcı Erişimini Kontrol Etme

İNTERNET PROGRAMCILIĞI DERSİ

VERĐTABANI YÖNETĐM SĐSTEMLERĐ

BÖLÜM- 9: KULLANICI ERİŞİMLERİNİ YÖNETMEK

C#.Net & Linq (Language Integrated Query)

GridView ve DetailsView kullanarak kayıt düzenlemek

1. Hafta MS SQL Server 2008 Kurulum ve Tanıtımı BPR255 Veritabanı. Bu Derste Öğrenecekleriniz: Kurulum:

Tavsiye Edilen Önhazırlık Temel veritabanı kavramlar hakkında bilgi sahibi olmak. Hedefler Temel veritabanı güvenlik işlemlerini gerçekleştirebilmek

İNTERNET TABANLI PROGRAMLAMA- 8.ders VERİTABANI İLE İLGİLİ BİLGİLERİ GÖRÜNTÜLEME, KAYDETME, GÜNCELLEME VE SİLME

Veritabanı Tasarımı. Sütun Değerlerini Güncelleme ve Satırları Silme

BİLİŞİM TEKNOLOJİLERİ

Kullanıcı tanımlı fonksiyonlar SQL2000 ile gelen özelliklerden biridir. Fonksiyonlar tek bir değer veya tablo döndürmek için kullanılır.

BİLGİLERİ GÖRÜNTÜLEME, KAYDETME, GÜNCELLEME VE SİLME İŞLEMLERİNİN BİRLİKTE ANLATIMI

2 Temel Kavramlar (Devam) Veritabanı 1

Bilgisayar Teknolojileri Bölümü Bilgisayar Programcılığı Programı. Öğr. Gör. Cansu AYVAZ GÜVEN

SQL Deyimleri. Öğr.Gör.Volkan ALTINTAŞ Volkanaltintas.com

SINIF İÇİ UYGULAMA KODLARI

NETBEANS GUI İLE MS SQL İŞLEMLERİ

1 GİRİŞ 1 C# Hakkında Genel Bilgiler 1.Net Framework 1 CLR 2 CLR Ve CTS 2 Temel Sınıf Kütüphanesi 3 CIL 3 Algoritma Nedir? 4 Sözde Kod (Pseudocode) 5

2 VISUAL STUDIO 2012 GELİŞTİRME ORTAMI

ADO.NET Entity. Framework. Temel Kavramlar

İNTERNET TABANLI PROGRAMLAMA- 9.ders BİLGİLERİN GRIDVIEW İÇERİSİNDE EKLENMESİ, DÜZENLENMESİ VE SİLİNMESİ

Data Programming SQL Language. Elbistan Meslek Yüksek Okulu Bahar Yarıyılı

Veritabanı. SQL (Structured Query Language)

Yukarıdakilerden hangileri DML (Data Manipulation Language) ile gerçekleştirilir?

PostgreSQL ve PL/pgSQL

Veri Tabanı SQL Server ve Management Studio kurulum linkleri:

Transkript:

HAFTA 9 İstemci Tarafta DB Erişimi Kodlamak" Yaşar GÖZÜDELİ ygozudeli@verivizyon.com http://blog.verivizyon.com/ygozudeli «BM364» Veritabanı Uygulamaları

Konu Akışı ADO.NET Bileşenleri Entity FrameWork ve O/R Mapping www.verivizyon.com 2

ADO.NET Veritabanı uygulamalarında veri kaynağına erişim için standart bir yol ADO.NET' in bağlantılı ve bağlantısız çalışma modları ADO.NET nesne modeli Bir veritabanına bağlanıp veri okuma ve değiştirme işlemini yapabilmek www.verivizyon.com 3

Veritabanın Uygulamalardaki Rolü Windows Ortamı, {ASP.NET, PHP,ASP,JSP+Browser, Dos Ekranı ADO.NET (veritabanı Erişim API'leri) PHP Script,VBScript,JavaScript, VB6.0,C#, VB.NET,Java ile yazılmış veri erişim Class ları-kodları Text dosyası, MSAccess,MySQL, SQL Server, Oracle... 4

ADO.NET Nesne Modeli-Bağlantılı İki tür erişim: Bağlantılı Veri Erişimi Connection, veritabanı ile bir bağlantı sağlar Transaction, ACID'i sağlamak için kullanılan bir nesnedir. DataAdapter Offline ve online verilerin veritabanı ile çift yönlü etkileşimini sağlar Command, Veritabanına gidecek metin ifadeyi yönetir. Parametrelerle, metin ifade şekillendirilebilir DataReader,tek yönlü, ileri doğru küçük çaplı veri okumada kullanılır. 5

Veri Sağlayıcıları(Data Providers) Veri Sürücüsü Uygulama-Veritabanı iletişimi DLL olarak sistemde kayıtlıdırlar ADO.NET ile veritabanı uygulamaları geliştirirken, bu sürücüler kullanılır Her bir sürücüye özgü veri sağlayıcısı Özel Veri Sağlayıcıları: Daha iyi performans Genel Veri Sağlayıcıları Daha genel işlev Veri Sağlayıcısı SQL Server OLE DB ODBC Oracle İsim Uzayı System.Data.SqlClient System.Data.OleDb System.Data.Odbc System.Data.Oracle 6

xxxconnection OleDbConnection, SqlConnection Kullanım: 4 aşama Oluştur Aç Kullan Kapat Transaction için destek sağlar OleDbConnection Örneği: String constr="provider=microsoft.jet.oledb.4.0;" + "Data Source=NWIND_RW.MDB"; OleDbConnection conn = new OleDbConnection(conStr); conn.open(); // OleDbDataAdapter veya OleDbCommand ile veri işlemleri yapılır conn.close(); 7

OleDbConnection ile SQL Server'a Erişim OleDbConnection conn =new OleDbConnection(); conn.connectionstring = "Provider=SQLOLEDB;Data Source=.;Database=pubs;Integrated Security=SSPI"; try { conn.open(); Console.WriteLine("Bağlantı açıldı"); catch(sqlexception hata) { Console.WriteLine(hata.Message.ToString()); Finally{ conn.close(); Console.WriteLine("Bağlantı kapatıldı"); 8

ConnectionString Bir veritabanına erişim için gerekli bütün bilgileri içerir Çoklu tanımlamalar arasına noktalı virgül konur Bütün tanımlamalar gerekli olmayabilir Format ve yapıyı tanımak önemli Parametreleri ezberlemeye gerek yok yardım dosyasından-örnekten bakıp yazılır! OLE-DB Sürücüsü Veritabanı Sunucu Adı conn.connectionstring= Provider = SQLOLEDB ; Data Source = (local) ; Database = pubs ; Integrated Security = SSPI "; Veritabanı adı Erişim Modu. Windows hesabından yetkili olanlar erişebilir 9

ConnectionString Bazı Connection String parametreleri OleDbConnection connaccess=new OleDbConnection ("Provider = Microsoft.Jet.OLEDB.4.0 ; data source = c:\\authors.mdb" ); Access içinveri erişim sürücüsü Veritabanının yolu conn.connectionstring= "Provider = SQLOLEDB ; Data Source = (local) ; Database = pubs ; user id =webuser; password=w~q12 *- "; Kullanıcı adı ve şifre verilerek erişiliyor 10

ConnectionString using(sqlconnection conn) { conn.connectionstring = "Provider=SQLOLEDB;Data Source=localhost;Database=Friends;User Id=sa;Password=sa.; ConnectionTimeout=10"; Console.WriteLine(conn.DataBase.ToString()); conn.changedatabase("northwind"); //artık başka bir veritabanına bağlantı sağlıyor conn.open(); Console.WriteLine("bağlantı açıldı"); conn.close(); Console.WriteLine("bağlantı kapandı"); Çıkışta, connection nesnesinin Dispose() methodu çağrılır 11

xxxcommand SqlCommand, OleDbCommand, OracleCommand, OdbcCommand Her command kendi connection'ı ile kullanılabilir Veritabanında çalıştırılacak sorguları tutar, çalıştırır ve yanıt döndürürler Sorgu = SP adı tablo adı SELECT * ifade Özellikleri Connection:Bağlantı sağlanan Conn nesnesi. Get ve set CommandText: Sorgu metni. CommandType: get-set. Text'deki komut nasıl değerlendirilecek Text StoredProcedure TableDirect CommandTimeOut: Saniye cinsinden bağlantının açık kalacağı süre 12

SQL Veri İşleme Dili(DML) İfade SELECT WHERE JOIN INSERT UPDATE DELETE Örnek SELECT isim,soyad FROM tbkullanici SELECT isim, soyad FROM tbkullanici WHERE isim LIKE '%xxxxx%' SELECT isim,soyad FROM tbkullanici JOIN tbmakale ON tbkullanici.kullanicikod=tbmakale.yazarkod INSERT INTO tbkullanici(isim,soyad) VALUES('Ali','Eryat') UPDATE tbkullanici SET isim=xxyy' WHERE kullanicikod = 3 DELETE FROM tbkullanici WHERE kullanicikod = 3 Veritabanına veri eklemek Veri Seçmek Veri silmek Veri Güncellemek için kullanılan standart ifadeler tbkullanici kullanicikod isim soyad 1 Yusuf YAHYA 2 Volkan VERİM 3 Yahya ÖZTÜRK tbmakale MakaleKod Makale YazarKod 1 SQL.. 1 2 C#... 2 3 ASP.NET 1 13

Command Nesnesi ile Sorguların Kullanımı OleDbConnection conn = new OleDbConnection("Provider=SQLOLEDB;data source=.;initial catalog=dbcontext;integrated security=sspi"); String ssql = "INSERT INTO tbkullanici (isim,soyad) VALUES('Ahmet','Eryatan')"; OleDbCommand cmd=new OleDbCommand(sSQL, conn); 14

Command Nesnesi ile Sorguyu Çalıştırmak Command.Text özelliğine yüklenen sorguyu veritabanına gönderip çalıştırtmak için üç method ExecuteNonQuery Geriye Sonuç döndürmeyen sorgular içindir Kaç adet kayıt etkilendiğini döndürür SP'den parametre döndürebilir. SELECT sonucu da döndürmez ExecuteReader Bir xxxdatareader nüshalandır ve içine gelen sonucu doldurup döndür ExecuteScalar Skaler bir sonuç döndürür. o SELECT COUNT(*) FROM tbkullanici bir sayı döndürür. Skaler bir sorgu değil ise, 1x1 ile belirtilen hücreyi döndürür 15

Command ile SQL çalıştırma örneği OleDbConnection conn = new OleDbConnection("Provider=SQLOLEDB;data source=.;initial catalog=dbcontext;integrated security=sspi"); String ssql = "INSERT INTO tbkullanici (isim,soyad) VALUES('Ahmet','Eryatan')"; OleDbCommand cmd=new OleDbCommand(sSQL, conn); try{ conn.open() int sonuc = cmd.executenonquery() Console.WriteLine("{0 adet kayıt eklendi", sonuc.tostring()) catch(oledbexception e){ Console.WriteLine("Hata Oluştu:{0", e.message.tostring()) Finally{ conn.close(); 16

xxxcommand.commandtype Command'ın Text özelliğine verilen ifadenin türünü belirtmek için, Command.CommandType özelliği kullanılır CommandType Text (Default) Açıklama Sql ifadesi olarak çalıştırılması gerektiğini belirtir StoredProcedure SP olarak çalıştırılması gerektiğini belirtir TableDirect Tablo adı verildiğini belirtir ve SELECT * FROM <tablo_ismi> ile tablonun içeriğinin çekileceğini belirtir 17

TableDirect Örneği // conn nesnesinde bağlantı açıldı OleDbCommand cmd=new OleDbCommand("tbMarka",conn); cmd.commandtype=commandtype.tabledirect; try { conn.open(); OleDbDataReader dr; dr=cmd.executereader(); while(dr.read()) { Console.WriteLine(dr["markaAd"].ToString()); dr.close(); catch(exception hata){ Console.WriteLine(hata.Message.ToString()); finally{ conn.close(); Tablodaki Verilere erişim 18

SP örneği STORED PROCEDURE, Veritabanında kayıtlı Sorgulara verilen ad. C#'taki metodlar gibi davranır.(parametre alır-değer döndürür-parametre döndürür) İçerisinde SELECT ifadesi varsa, resultset(tablular data) döndürür. Cmd.CommandType = CommandType.StoredProcedure ile, Command nesnesinin veritabanına SP gönderdiği belirtilir Örnek bir SP CREATE PROCEDURE MarkaBul ( @markakod int ) AS SELECT markakod, markaad FROM tbmarka WHERE markakod=@markakod RETURN 19

Command ile SP çalıştırmak SqlCommand cmd=new SqlCommand("MarkaBul",conn); cmd.commandtype=commandtype.storedprocedure; cmd.parameters.add("@markakod",sqldbtype.integer); cmd.parameters["@markakod"].value=201; cmd.parameters["@markakod"].direction = try { conn.open(); SqlDataReader dr; dr = cmd.executereader(); while(dr.read()) { Console.WriteLine(dr["markaKod"].ToString()+"- "+dr["markaad"].tostring()); dr.close(); catch(exception hata) { Console.WriteLine(hata.Message.ToString()); finally{ con.close(); 20

xxxdatareader Sadece ileri yönlü veri okuma için Basit türden veri okuma işlemleri için hızlı DataAdapter'e göre daha az yük bindirir. Nüshalama işlemi için kendi yapıcısı yok xxxcommand.executereader() ile nüshalanır ve döndürülür xxxcommand, açık olduğu sürece veri okuyabilir Bağlantılı halde veriye erişebilir. Bağlantısız veri tutmaz. 21

SqlDataReader Örnek SqlConnection conn = new SqlConnection("data source=localhost;integrated security=sspi;initial catalog=pubs"); String ssql="select au_lname,au_fname FROM authors"; SqlCommand cmd=new SqlCommand(sSQL,conn); conn.open(); SqlDataReader dr = Akımı başlat cmd.executereader(commandbehavioru.closeconnection); while(dr.read()){ Console.WriteLine(dr.GetString(0)); dr.close(); conn.close(); datareader kapanınca conn da kapansın Açılan satırdan, 0 indisli sütunun değeri 22

CommandBehavior Enumaratörü CloseConnection Command nesnesine, datareader kapandığında connection'ı KeyInfo da kapatmasını belirtir Sorguya ait anahtar alan bilgilerini de içeren bir datareader nüshalamak için SchemaOnly Sorguya ait sadece şemayı içeren bir DataReader nüshalamak için SequentialAccess BLOB(Binary Large Object- Text-Binary-Image) türü veritabanı alanlarını sorgularken, bu alana bir streaming sağlayabilmek için. BLOB alanlar 2GB civarı veri alabilir SingleResult Sorgu ne kadar resultset döndürürse döndürsün, ilk resultset'i okuyabilen bir DataReader. Daha iyi performans SingleRow Sorgu ne kadar satır döndürürse döndürsün ilk satır erişilebilir. Daha iyi bir performans 23

CommandBehavior.SingleRow SqlConnection conn = new SqlConnection("data source=localhost;integrated security=sspi;initial catalog=dukkan"); String ssql="select isim, soyad FROM tbkullanici WHERE kullanicikod=2"; SqlCommand cmd=new SqlCommand(sSQL,conn); conn.open(); SqlDataReader dr = cmd.executereader(commandbehavioru.singlerow); for(int i=0; i<rd.fieldcount;i++){ Console.WriteLine(dr.GetName(i) +"="+ dr[i].tostring()); dr.close(); conn.close(); 24

xxxdatareader-2 Önemli özellikleri: FieldCount: Sorgudan dönen sütun sayısı RecordsAffected: Sorgudan etkilenen kayıt sayısı Indeksleyiciler'le veri okunabilir dr[0] veya dr["isim"] Veri Okumak için sağladığı Metodlar dr.getvalue(), GetString(), GetInt32(), ile veri okunabilir. dr.read() ile bir satır açılır ve okunabilir hale getirilir. True döndürürse satır var demektir. NextResultSet() Yığının bir sonraki SELECT' inin sonucu GetValues() Geçerli olan satırı döndürür. 25

Ödev Bir adet SQL Server a erişen istemci kod örneği www.verivizyon.com 26

Sonuç Veritabanları sadece insanların sorgulamaları için değildir. Yazılımlar da insanlarla etkileştikten sonra verilerini veritabanlarında saklayıp veritabanlarından okuyarak gösterebilirler. www.verivizyon.com 27