Veritabanı İşlemleri

Benzer belgeler
«BM364» Veritabanı Uygulamaları

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

Asp.Net Veritabanı İşlemleri

C Sharp /Veri tabanı iş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

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

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

Veritabanı İşlemleri

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

İleri Web Programlama

«BM364» Veritabanı Uygulamaları


VeriTabanı Uygulamaları

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

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

A- VERİTABANI BAĞLANTISINI HAZIR NESNE KULLANARAK YAPMA

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

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

Üst Düzey Programlama

VISUAL STUDIO.NET ve FORM UYGULAMALARI

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

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

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

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

Command Nesnelerini Kullanarak Tablolarda Değişiklik Yapmak:

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

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

Programlama Dili ve Yazılım Tasarımı

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

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

Swing ve JDBC ile Database Erişimi

GridView ve DetailsView kullanarak kayıt düzenlemek

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

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

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;

Ders 8 Konu Özeti ve Problemler

BİLİŞİM TEKNOLOJİLERİ

İNTERNET TABANLI PROGRAMLAMA- 11.ders FORM UYGULAMASI (DROPDOWN BİLGİ YÜKLEME, VALIDATION KONTROLLERI, PAREMETRELİ KAYIT YAPMA)

BİLİŞİM TEKNOLOJİLERİ

İ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

EĞİTİM : LINQ to SQL. Bölüm : LINQ e Genel Bakış. Konu : LINQ Nedir? Page 1 of 25

Nesne tabanlı programlama nesneleri kullanan programlamayı içerir. Bir nesne farklı olarak tanımlanabilen gerçek dünyadaki bir varlıktır.

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

C# nedir,.net Framework nedir?

Veritabanı. Ders 2 VERİTABANI

MICROSOFT ASP.NET TABANLI DUYURU SİSTEMİ

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

MOBİL UYGULAMA GELİŞTİRME

İNTERNET TABANLI PROGRAMLAMA- 10.ders GRIDVIEW İÇERİSİNDE YENİ KAYIT EKLEME, FOTOGRAF LİSTELEME, SIRALAMA YAPMA VE DROPDOWN EKLEME

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

C# ve SQL Server ile Resim Yükleme ve Login İşlemi

BİLİŞİM TEKNOLOJİLERİ

/*Aşağıda ki kodları doğru şekilde anlar ve kullanırsanız java da sınıfları biraz da olsa anlamış olursunuz.*/

ASP.NET ORTAMINDA C# VERİTABANI UYGULAMALARI

Kitap Ekle linki tıklandığında, admin.aspx sayfamızın görüntüsü aşağıdaki şekilde olacaktır.

Java String İşlemleri

SINIF İÇİ UYGULAMA KODLARI

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

NESNE TABANLI PROGRAMLAMA-1 DERS UYGULAMALARI (22 EYLÜL - 14 KASIM

BİL-141 Bilgisayar Programlama I (Java)

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

BAY.t Entegre. Aşağıdaki script fiyat gör programının ayarlar sayfasındaki sorgu cümlesi alanına yapıştırılıp Sorguyu Db ye Yükle tıklanır

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

LINQ (Temel Kavramlar)

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

IIS Kurulu Uygulama Sunumcu ile Veritabanı Arasındaki Bağlantının Güvenlik Esasları

Entity Freamwork & ADO.Net

11- FONKSİYONLAR (FUNCTIONS)

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

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

Bahar. BM 211 Programlama Dilleri 3 1

NETBEANS GUI İLE MS SQL İŞLEMLERİ

abstract Sınıflar 1 Sınıf sınıf1 new class Ama aşağıdaki şekilde referans alınabilir;

İnternet Programcılığı

SQL Komutları (2) Uzm. Murat YAZICI

C#.Net & Linq (Language Integrated Query)

VERİTABANI DÜNYASINDA NELER OLUYOR? Tavsiye Edilen Önhazırlık Veritabanı kavramını öğrenmek.

Yedek Almak ve Yedekten Geri Dönmek

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

Veritabanı ve Yönetim Sistemleri

ORACLE DA KÜRSÖRLER. Gerekli sistem değişkenleri

Veri Tabanı-I 1.Hafta

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

ADO.NET Entity. Framework. Temel Kavramlar

SAKLI YORDAM (Stored Procedure) Sibel Somyürek

Şablon Türler (Generics)

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

Cybersoft Bilişim Teknolojileri Sunucu Tarafı Programlaması Kursu Final soruları. Tarih: 27 Kasım 2010 Saat: 13:30 Süre: 3 saat

UYGULAMA KULLANIM KILAVUZU

VERİ TABANI YÖNETİM SİSTEMLERİ II

IceWarp kurulumu. IceWarp Server kurmanız için yapmamız gereken adımlar şunlardır:

HSancak Nesne Tabanlı Programlama I Ders Notları

Bölüm 24. Java Ağ Uygulamaları 24.1 Java Appletleri. Bir Applet in Yaşam Döngüsü:

Sağ Tıkla. 5 Ocak 2012 / Perşembe. Yeni bir site açıyoruz. File New Web Site Browse yeni klasör ocak5persembe OK

Görsel Programlama DERS 03. Görsel Programlama - Ders03/ 1

Programlama Dilleri III 1

Programlama Dilleri 3

GÖRSEL PROGRAMLAMA - I

İş Parçacıkları Thread(s)

Transkript:

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

NameSpace System.Data.Sql System.Data.SqlClient Tanım SQL Server ın veriye erişimi için yeni şablon arayüzler ve sınıflar 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 DataSet DataTable DataRow DataColumn DataRelation Constraint Tanım Bu nesne, VT ile bağlantı olmadan da çalışabilir. Farklı DataTable lar ve bunlar arasındaki ilişkileri barındırır. DataColumn lar bir araya gelerek oluşurlar. Bir veya daha çok DataRow içerir. Birden çok değeri içerir (Kayıtlar) Bu nesne, bir sütunun tanımlamasını içerir. DataSet içerisindeki DataTable lar arasındaki bağlantıdır. 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 Command DataTable DataRow DataColumn DataRelation Constraint İlgili Sınıflar SqlCommand, OleDbCommand, OracleCommand ve ODBCCommand DataColumn lar bir araya gelerek oluşurlar. Bir veya daha çok DataRow içerir. Birden çok değeri içerir (Kayıtlar) Bu nesne, bir sütunun tanımlamasını içerir. DataSet içerisindeki DataTable lar arasındaki bağlantıdır. 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; using System.Data.SqlClient; namespace DbAccess { class Program { static void Main(string[] args) { } SSPI : Security Support Provider Interface Windows ortamında doğrulama (authentication) işleminde kullanılan arabirimdir. 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"); } }

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.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ü Text (Varsayılan) StoredProcedure TableDirect Örnek String select = SELECT ContactName FROM Customers ; SqlCommand cmd = new SqlCommand(select,conn) SqlCommand cmd = new SqlCommand( CustOrderHist,conn); cmd.commandtype=commandtype.storedprocedure; cmd.parameters.addwithvalue( @CustomerID, QUI CK ); 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 ExecuteNonQuery() ExecuteReader() ExecuteScalar() ExecuteXmlReader() Açıklamaları 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. 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. Komutu icra eder ve geriye tek bir değer döndürür. (Örn: Tablodaki kayıt sayısı gibi) 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(); }