İNTERNET PROGRAMLAMA –2 |A S P . N E T

advertisement
İNTERNET PROGRAMLAMA – 2
|A S P . N E T
Marmara Teknik Bilimler MYO / Hafta 5 – Veri Tabanı İşlemleri
VERİTABANI BAĞLANTISI
 Site içindeki bilgilerin saklanması / düzenlenmesi ve
kullanıcı etkileşiminin sağlanabilmesi için; veriler,
ilişkisel
veri
depolama
modeli
kullanılarak
tutulmalıdır. Bu yöntemde geliştirilen uygulamalara
İlişkisel Veri Tabanı Yönetim Sistemi adı
verilmektedir.
 Bu yöntemde veriyi saklamak ve tekrar kullanılmak
üzere depolamak için kullanılan sistemler ise
Veritabanı (Database) olarak tanımlanabilir.
 Verileri depolamak için farklı veritabanı uygulama
yazılımları kullanılabilir. Programlama yazılımı ile bu
veritabanlarına bağlantı kurularak veriler üzerinde
işlem yapılabilir.
WEB TASARIMI VE PROGRAMLAMA
2
VERİTABANI BAĞLANTISI
• Veri Erişim Teknolojileri
 Uygulamalarda veriye erişmek için birçok veri erişim
teknolojisi geliştirilmiştir:
ODBC (Open Database Connectivity)
DAO (Data Access Object)
RDO (Remote Data Object)
OLE DB (Object Linking and Embedding DataBase)
ADO (ActiveX Data Object)
ADO.NET
WEB TASARIMI VE PROGRAMLAMA
3
VERİTABANI BAĞLANTISI
• ADO.NET Mimarisi
 .NET platformunda kullanılan ortak bir katmandır.
 .NET ile geliştirilen tüm uygulamalar, veriye erişimde
ADO.NET tiplerinden faydalanmaktadır.
 ADO.NET ile farklı veritabanları ve veritabanı yönetim
sistemleri kullanılabilir. Bu nedenle .NET platformu
geliştirilirken farklı standartları destekleyen ayrı isim
alanları (Namespace) oluşturulmuştur:




SQL  SQL Server Veri Sağlayıcı
Oracle  Oracle Veri Sağlayıcı (Oracle Data Provider)
OLEDB  OleDb .NET Veri Sağlayıcı
ODBC  ODBC .NET Veri Sağlayıcı
WEB TASARIMI VE PROGRAMLAMA
4
VT BAĞLANTISI / ADO.NET MİMARİSİ
• Connection Nesnesi
 Veri kaynağı ile uygulama arasında bağlantı
kurmak, hangi veri kaynağına hangi güvenlik
ayarlarıyla bağlanılacağını belirlemek için
kullanılır.
 Visual Studio’da veri kaynağının türüne bağlı
olarak;
 SqlConnection
 OleDbConnection
olmak üzere iki farklı yöntem kullanılır.
WEB TASARIMI VE PROGRAMLAMA
5
VT BAĞLANTISI / ADO.NET MİMARİSİ
• Command Nesnesi
 Bağlantı kurulan veri kaynağına müdahale
etmeyi sağlar ve veri kaynağı ile uygulama
arasında veri alma-verme isteklerini taşır.
 Command nesnesinin Visual Studio’da veritabanı
üzerinde komut yürütmesi için;
 ExuteNonQuery
 ExuteScalar
 ExuteReader
olmak üzere 3 farklı kullanımı vardır.
WEB TASARIMI VE PROGRAMLAMA
6
VT BAĞLANTISI / ADO.NET MİMARİSİ
• DataReader Nesnesi
 Veritabanından
Command
nesnesi
getirilen verileri okumak için kullanılır.
ile
• DataAdapter Nesnesi
 Veritabanı ile bağlantı kurulduktan sonra veri
tabanından alınan verileri, bellekte tutacak
nesnelere aktarmak ve gerekli düzenlemelerden
sonra tekrar veritabanına aktarmak için kullanılır.
WEB TASARIMI VE PROGRAMLAMA
7
VT BAĞLANTISI / ADO.NET MİMARİSİ
• DataAdapter Nesnesi
 Veritabanında işlem yapmak için 4 özelliği vardır:
 Seçme / SelectCommand
 Ekleme / InsertCommand
 Güncelleme / UpdateCommand,
 Silme / DeleteCommand
• DataSet Nesnesi
 DataAdapter nesnesi aracılığıyla alınan verileri
bağlantısız olarak depolamak ve yönetmek için
kullanılır.
WEB TASARIMI VE PROGRAMLAMA
8
VERİTABANI BAĞLANTISI
• Veritabanı Oluşturma
 Veritabanı, harici bir veritabanı uygulaması (Access,
SQL Server, vb…) üzerinden oluşturulabileceği gibi
Visual Studio aracılığıyla da oluşturulabilir.
 Veritabanı, web sitesi içindeki App_Data klasörüne
yüklenmelidir.
 Solution Explorer alanında Web Site üzerinde sağ
tuşla açılan menüden Add ASP.NET Folder /
App_Data tıklanarak ilgili klasör eklenebilir.
WEB TASARIMI VE PROGRAMLAMA
9
VERİTABANI BAĞLANTISI
• Veritabanına Bağlanma
 Uygulamada kullanılan veritabanına; Connection
nesnesiyle güvenlik ayarları belirtildikten sonra
bağlanılabilir.
 Bağlantı açıldıktan sonra uygulama ile veri tabanı
arasında veri aktarımı yapılabilir.
 Veri aktarımı tamamlandıktan sonra bağlantı
kapatılmalıdır. Bağlantı kapatılmadığı zaman sunucu
kaynaklarının gereksiz kullanımı uygulama çalışma
zamanında sorunlara sebep olabilir.
WEB TASARIMI VE PROGRAMLAMA
10
VERİTABANI BAĞLANTISI
• Veritabanına Bağlanma
 Uygulama
yazılımından
harici
bir
Access
veritabanına
bağlanmak
için
öncelikle
System.Data.OleDb isim alanının uygulamaya
(default.aspx.cs) eklenmesi gerekmektedir.
WEB TASARIMI VE PROGRAMLAMA
11
VERİTABANI BAĞLANTISI
• Veritabanına Bağlanma
OleDbConnection baglanti_adi = new OleDbConnection
("connection_string_ifadesi; Data Source=" +
Server.MapPath("veritabanı_yolu_ve_adi"));
 OleDbConnection: Access veritabanına bağlanmak için
kullanılan Connection nesnesini ifade eder.
 connection_string (Provider): Bağlantı sağlayıcının
ismini tutar. OleDbConnection nesnesi ile birlikte kullanılır.
Kullanılacak VT sürümüne göre değişir.
 Data Source: Veritabanı adını belirtmek için kullanılır.
 Server.MapPath: Veritabanı dosyasının sunucu üzerindeki
yolunu eşleştirmek için kullanılır.
WEB TASARIMI VE PROGRAMLAMA
12
VERİTABANI İŞLEMLERİ
 Veritabanı ile bağlantı kurulduktan sonra veritabanı
içindeki veriler seçilebilir, bir kontrole aktarılabilir; ya
da veritabanı içinde veri ekleme / güncelleme / silme
işlemleri gerçekleştirilebilir.
• Bağlantıyı Açma - Kapama
 Veritabanı bağlantı cümlesi yazıldıktan
bağlantının açılması gerekir.
baglanti_adi.Open();
sonra
 Veritabanı ile veri alış-verişi tamamlandıktan sonra
bağlantı mutlaka kapatılmalıdır.
baglanti_adi.Close();
WEB TASARIMI VE PROGRAMLAMA
13
VERİTABANI İŞLEMLERİ
• Veri Ekleme
 Veritabanında bulunan bir veya birden fazla alana
veri eklemek için INSERT SQL komutu kullanılır.
 Veritabanından veriler aşağıdaki komutla eklenir:
OleDbCommand komut_adi = new OleDbCommand
("INSERT INTO tablo_adi (eklenecek_veriler)
VALUES (form_arayuzundeki_kontrollere_bagli_parametreler)",
baglanti_adi);
WEB TASARIMI VE PROGRAMLAMA
14
örnek
uygulama
Adım
• Bir web sitesi
oluşturulur.
(01_vt_uyg1)
1
• Bu web sitesi içinde
App_Data klasörü
oluşturulur.
WEB TASARIMI VE PROGRAMLAMA
15
örnek
uygulama
Adım
• vt adında bir veritabanı oluşturulur.
2
• Veritabanı içine uyeler isimli bir tablo eklenir ve ilgili
alanlar tanımlanır.
• Tablo, içine kayıt eklenmeden kapatılır.
WEB TASARIMI VE PROGRAMLAMA
16
örnek
uygulama
Adım
• Veritabanı, kaydedilerek kapatılır.
3
• Web site altındaki App_Data klasörüne taşınır.
WEB TASARIMI VE PROGRAMLAMA
17
örnek
uygulama
Adım
• Web sitesi içinde yeni bir Web Form sayfası açılır.
4
• Sayfa içine kullanıcı adı ve parola girişi için uygun
kontroller eklenir.
WEB TASARIMI VE PROGRAMLAMA
18
örnek
uygulama
5
Adım
• EKLE butonuna tıklanarak açılan CS sayfasının
başına System.Data.OleDb isim alanı eklenir.
WEB TASARIMI VE PROGRAMLAMA
19
örnek
uygulama
6
Adım
• EKLE butonuna tıklanarak açılan aspx.cs sayfasındaki
Button_Click olayının içine veritabanı bağlantısı için
gerekli kod yazılır.
‘‘Provider.. ’’ ifadesi Access sürümüne göre değişebilmektedir.
WEB TASARIMI VE PROGRAMLAMA
20
örnek
uygulama
7
Adım
• EKLE butonuna tıklanarak açılan aspx.cs sayfasındaki
Button_Click olayının içine veritabanı bağlantısının
açılması için gerekli kod eklenir.
WEB TASARIMI VE PROGRAMLAMA
21
örnek
uygulama
8
Adım
• EKLE butonuna tıklanarak açılan aspx.cs sayfasındaki
Button_Click olayının içine veritabanına veri eklemek
için gerekli SQL ifadesi yazılır ve bu ifade, tanımlanan
OleDbCommand nesnesi içine aktarılır.
WEB TASARIMI VE PROGRAMLAMA
22
örnek
uygulama
9
Adım
• INSERT ifadesi içinde tanımlanan parametrelere, web
formundaki sunucu kontrollerine girilecek bilgilerin
aktarılması için gerekli kodlama yapılır.
WEB TASARIMI VE PROGRAMLAMA
23
örnek
uygulama
10
Adım
• Hazırlanan sorgunun çalıştırılması için gerekli kod
satırı eklenir.
WEB TASARIMI VE PROGRAMLAMA
24
örnek
uygulama
11
Adım
• Button_Click olayının içine veritabanı bağlantısının
kapatılması için gerekli kod eklenir.
WEB TASARIMI VE PROGRAMLAMA
25
örnek
uygulama
12
Adım
• Uygulama çalıştırılarak test edilir.
WEB TASARIMI VE PROGRAMLAMA
26
VERİTABANI İŞLEMLERİ
• Veri Güncelleme
 Veritabanında bulunan bir veya birden fazla veriyi
güncellemek için UPDATE SQL komutu kullanılır.
 Veritabanındaki veriler aşağıdaki komutla güncellenir:
OleDbCommand komut_adi = new OleDbCommand
("UPDATE tablo_adi SET
degisecek_alan=parametre_değeri WHERE
koşul_alani=parametre_degeri",
baglanti_adi);
WEB TASARIMI VE PROGRAMLAMA
27
örnek
uygulama
Adım
• Bir web sitesi oluşturulur.
(02_vt_uyg2)
1
• Bu web sitesi içinde App_Data klasörü oluşturulur.
• Önceden hazırlanmış veritabanı dosyası App_Data
klasörüne taşınır.
• Web sitesi içinde yeni bir Web Form sayfası açılır.
• Sayfa içine kullanıcı adı ve
parola güncelleme işlemi için
uygun kontroller eklenir.
WEB TASARIMI VE PROGRAMLAMA
28
örnek
uygulama
2
Adım
• EKLE butonuna tıklanarak açılan CS sayfasının
başına System.Data.OleDb isim alanı eklenir.
WEB TASARIMI VE PROGRAMLAMA
29
örnek
uygulama
3
Adım
• GÜNCELLE butonuna tıklanarak açılan aspx.cs
sayfasındaki Button_Click olayının içine veritabanı
bağlantısı için gerekli kod yazılır.
‘‘Provider.. ’’ ifadesi Access sürümüne göre değişebilmektedir.
WEB TASARIMI VE PROGRAMLAMA
30
örnek
uygulama
4
Adım
• GÜNCELLE butonuna tıklanarak açılan aspx.cs
sayfasındaki Button_Click olayının içine veritabanı
bağlantısının açılması için gerekli kod eklenir.
WEB TASARIMI VE PROGRAMLAMA
31
örnek
uygulama
5
Adım
• GÜNCELLE butonuna tıklanarak açılan aspx.cs
sayfasındaki Button_Click olayının içine veritabanında
istenen veriyi güncellemek için gerekli SQL ifadesi
yazılır ve bu ifade, tanımlanan OleDbCommand
nesnesi içine aktarılır.
WEB TASARIMI VE PROGRAMLAMA
32
örnek
uygulama
6
Adım
• UPDATE ifadesi içinde tanımlanan parametrelere, web
formundaki sunucu kontrollerine girilecek bilgilerin
aktarılması için gerekli kodlama yapılır.
WEB TASARIMI VE PROGRAMLAMA
33
örnek
uygulama
7
Adım
• Hazırlanan sorgunun çalıştırılması için gerekli kod
satırı eklenir.
WEB TASARIMI VE PROGRAMLAMA
34
örnek
uygulama
8
Adım
• Button_Click olayının içine veritabanı bağlantısının
kapatılması için gerekli kod eklenir.
WEB TASARIMI VE PROGRAMLAMA
35
örnek
uygulama
Adım
• Uygulama çalıştırılarak test edilir.
WEB TASARIMI VE PROGRAMLAMA
9
36
VERİTABANI İŞLEMLERİ
• Veri Silme
 Veritabanında bulunan bir veya birden fazla veriyi
silmek için DELETE SQL komutu kullanılır.
 Veritabanındaki veriler aşağıdaki komutla silinir:
OleDbCommand komut_adi = new OleDbCommand
("DELETE from tablo_adi WHERE kosul_alani=parametre_degeri",
baglanti_adi);
WEB TASARIMI VE PROGRAMLAMA
37
örnek
uygulama
Adım
• Bir web sitesi oluşturulur.
(03_vt_uyg3)
1
• Bu web sitesi içinde App_Data klasörü oluşturulur.
• Önceden hazırlanmış veritabanı dosyası App_Data
klasörüne taşınır.
• Web sitesi içinde yeni bir Web Form sayfası açılır.
• Sayfa içine kullanıcı adına
göre parola silme işlemi için
uygun kontroller eklenir.
WEB TASARIMI VE PROGRAMLAMA
38
örnek
uygulama
2
Adım
• SİL butonuna tıklanarak açılan CS sayfasının başına
System.Data.OleDb isim alanı eklenir.
WEB TASARIMI VE PROGRAMLAMA
39
örnek
uygulama
3
Adım
• SİL butonuna tıklanarak açılan aspx.cs sayfasındaki
Button_Click olayının içine veritabanı bağlantısı için
gerekli kod yazılır.
‘‘Provider.. ’’ ifadesi Access sürümüne göre değişebilmektedir.
WEB TASARIMI VE PROGRAMLAMA
40
örnek
uygulama
4
Adım
• SİL butonuna tıklanarak açılan aspx.cs sayfasındaki
Button_Click olayının içine veritabanı bağlantısının
açılması için gerekli kod eklenir.
WEB TASARIMI VE PROGRAMLAMA
41
örnek
uygulama
5
Adım
• SİL butonuna tıklanarak açılan aspx.cs sayfasındaki
Button_Click olayının içine veritabanında istenen
kaydı silmek için gerekli SQL ifadesi yazılır ve bu
ifade, tanımlanan OleDbCommand nesnesi içine
aktarılır.
WEB TASARIMI VE PROGRAMLAMA
42
örnek
uygulama
6
Adım
• SİL ifadesi içinde tanımlanan parametrelere, web
formundaki sunucu kontrolüne girilecek bilginin
aktarılması için gerekli kodlama yapılır.
WEB TASARIMI VE PROGRAMLAMA
43
örnek
uygulama
7
Adım
• Hazırlanan sorgunun çalıştırılması için gerekli kod
satırı eklenir.
WEB TASARIMI VE PROGRAMLAMA
44
örnek
uygulama
8
Adım
• Button_Click olayının içine veritabanı bağlantısının
kapatılması için gerekli kod eklenir.
WEB TASARIMI VE PROGRAMLAMA
45
örnek
uygulama
Adım
• Uygulama çalıştırılarak test edilir.
WEB TASARIMI VE PROGRAMLAMA
9
46
VERİTABANI İŞLEMLERİ
• Veri Seçme
 Veritabanında bulunan bir veya birden fazla veriyi
seçmek için SELECT SQL komutu kullanılır.
 Veritabanından veriler aşağıdaki komutla seçilir:
OleDbCommand komut_adi = new OleDbCommand("SELECT
secilecek_veriler FROM tablo_adi", baglanti_adi);
WEB TASARIMI VE PROGRAMLAMA
47
örnek
uygulama
Adım
• Bir web sitesi oluşturulur.
(04_vt_uyg4)
1
• Bu web sitesi içinde App_Data klasörü oluşturulur.
• Önceden hazırlanmış veritabanı dosyası App_Data
klasörüne taşınır.
• Web sitesi içinde yeni bir Web Form sayfası açılır.
• Sayfa içine kullanıcı adı ve
parola giriş işlemi için
uygun kontroller eklenir.
WEB TASARIMI VE PROGRAMLAMA
48
örnek
uygulama
2
Adım
• EKLE butonuna tıklanarak açılan CS sayfasının
başına System.Data.OleDb isim alanı eklenir.
WEB TASARIMI VE PROGRAMLAMA
49
örnek
uygulama
3
Adım
• GİRİŞ
butonuna
tıklanarak
açılan
aspx.cs
sayfasındaki Button_Click olayının içine veritabanı
bağlantısı için gerekli kod yazılır.
‘‘Provider.. ’’ ifadesi Access sürümüne göre değişebilmektedir.
WEB TASARIMI VE PROGRAMLAMA
50
örnek
uygulama
4
Adım
• GİRİŞ
butonuna
tıklanarak
açılan
aspx.cs
sayfasındaki Button_Click olayının içine veritabanı
bağlantısının açılması için gerekli kod eklenir.
WEB TASARIMI VE PROGRAMLAMA
51
örnek
uygulama
5
Adım
• GİRİŞ
butonuna
tıklanarak
açılan
aspx.cs
sayfasındaki
Button_Click
olayının
içine
veritabanından veri seçmek için gerekli kod eklenir.
WEB TASARIMI VE PROGRAMLAMA
52
örnek
uygulama
6
Adım
• Veritabanından seçilen verileri okumak ve TextBox
içindeki değerlerle karşılaştırmak için gerekli kodlar
yazılır.
WEB TASARIMI VE PROGRAMLAMA
53
örnek
uygulama
7
Adım
• Button_Click olayının içine veritabanı bağlantısının
kapatılması için gerekli kod eklenir.
WEB TASARIMI VE PROGRAMLAMA
54
örnek
uygulama
Adım
• Uygulama çalıştırılarak test edilir.
WEB TASARIMI VE PROGRAMLAMA
8
55
örnek
uygulama
İlçe alanındaki veriler, İl
alanı içindeki değere göre
otomatik olarak değişecektir.
Bunun için İl kontrolünün
AutoPostBack özelliği TRUE
olarak düzenlenmelidir.
Ekran görüntüsü verilen
sayfa içindeki kontrollere
uygun veritabanını
oluşturduktan sonra
kontroller içine girilen
bilgilerin veritabanı içindeki
ilgili tabloya eklenmesini
sağlayacak kodlamayı
yapınız.
WEB TASARIMI VE PROGRAMLAMA
56
Download