• Sonuç bulunamadı

Basit Sorgulamalar Yapmak

N/A
N/A
Protected

Academic year: 2021

Share "Basit Sorgulamalar Yapmak"

Copied!
19
0
0

Yükleniyor.... (view fulltext now)

Tam metin

(1)

Ankara Üniversitesi

Nallıhan Meslek Yüksekokulu

Basit Sorgulamalar Yapmak

İ L E R I G Ö R S E L P R O G R A M L A M A Ö Ğ R . G Ö R . M A H M U T K I L I Ç A S L A N

(2)

Konular [1]

Yabancı anahtar (Foreign key) ilişkisi Master-Detail Formlar

◦ İlişkili kayıtları SQL kullanarak almak

◦ SqlCommand parameters kullanımı Seçili kayda ait detayları almak

◦ Görsel kontroller üzerinden

◦ CurrencyManager üzerinden

(3)

Yabancı anahtar ilişkisi [1]

Bir tablodaki herhangi bir alan başka bir tablo ile mantıksal ilişki

kurmaya yarıyorsa ve bu alan diğer tabloda birincil anahtar (primary key) ise, bu alan bahsedilen tabloda yabancı anahtar (foreign key) dır.

Yabancı anahtar ilişkisi veri bütünlüğünü (data integrity) sağlamak

için kullanılır

(4)

Yabancı anahtar ilişkisi [1]

Örnek olarak siparisler ve sip_edilen tablolarına bakalım

siparisler tablosu

sip_edilen tablosu

(5)

Yabancı anahtar ilişkisi [1]

Her iki tabloda sip_num alanı bulunmaktadır.

Böylece sip_edilen tablosundaki “sip_num” alanı ile o satırın

siparisler tablosundaki hangi siparişe ait olduğunu bulabiliyoruz.

(6)

Yabancı anahtar ilişkisi [1]

sip_edilen tablosu satırları

sip_edilen tablosu satırları siparisler tablosusiparisler tablosu

(7)

Yabancı anahtar ilişkisi [1]

20005 numaralı siparişin, ürünlerini (details) almak için aşağıdaki gibi bir sorgu yeterlidir

SELECT *

FROM sip_edilen

WHERE sip_num = 20005

(8)

Master-detail formlar [1]

Master-detail formlarda üst bilgi (master) niteliğinde bir kayıt ve bu kayda ait alt bilgiler (detail) gösterilmektedir.

Örneğin, siparisler tablosundaki herhangi bir kayıt üst bilgi ve bu kayda ait sip_edilen tablosundaki kayıtlar alt bilgiyi oluşturur.

Dikkat: Master kayda ait birden fazla detail kayıt bulunabilir. Form

tasarımı buna göre yapılmalıdır.

(9)

Master-detail formlar [1]

Örnek bir form: Sipariş (master) ve siparişe ait ürünler (detail) listelenmektedir

Üst bilgi (master): Sipariş

Alt bilgiler(detail): Ürünler

(10)

Örnek uygulama [1]

Bu form çalışırken

1. Form_Load sırasında sipariş üst bilgisi TextBox kontrollerine DataBindings.Add ile eklenir

2. CurrencyManager nesnesinin Position özelliği değiştirildikçe:

a) Yeni siparişe ait anahtar bilgi (sip_num) alınır

b) Alt bilgiler bu bilgiye göre SqlCommand kullanılarak sorgulanır

c) Alınan alt bilgiler DataGridView içine doldurulur

(11)

Örnek uygulama [1]

Global değişkenler

Detay bilgileri getirecek fonksiyonu çağırıyoruz

(12)

Örnek uygulama [1]

SqlConnection nesnesi global tanımlanmıştır, çünkü:

◦ DetayGetir( ) fonksiyonu her çağrıldığında bağlantı işlem yapılırken kullanılacaktır (açılıp-kapanacak)

CurrencyManager nesnesi global tanımlanmıştır çünkü:

◦ Button1 ve Button2 click olayları sırasında bu nesnesinin Position

özelliği değiştirilecektir

(13)

Örnek uygulama [1]

Düğmelere tıklanınca aktif kayıt değiştirilecek ve aynı zamanda aktif (üst) kayda ait alt kayıtlar da her seferinde sorgulanacaktır (DetayGetir() fonksiyonu içinde)

Alt kayıtları getirecek fonksiyon çağrılıyor

(14)

Örnek uygulama [1]

DetayGetir() fonksiyonu içinde sırasıyla 1. Bağlantı tekrar açılacak

2. SqlCommand nesnesi oluşturulacak

3. Seçilen üst kayda ait anahtar alan değeri bulunacak (alt satırları sorgulamak için, sip_num)

4. Alınacak kayıtlar DataTable, ordan da DataGridView’a doldurulacak

5. Bağlantı kapatılacak

(15)

Örnek uygulama [1]

Aktif kaydın (seçili siparişin) sip_num değerini almak için

string sipNum = textBox1.Text;

veya

DataRowView r = (DataRowView)cm.Current;

string sipNum = r["sip_num"].ToString();

1) Doğrudan görsel kontrolden değer alınabilir

2) CurrencyManager üzerinden aktif kaydın ilgili sütun değeri alınabilir

(16)

Örnek uygulama [1]

(17)

Örnek uygulama [1]

cmd.Parameter.Add fonksiyonu ile yazılan SQL sorgusu içinde

@ işareti ile başlayan değişkenlere değer aktarılır

(18)

Örnek uygulama [1]

Aynı işlem şu şekilde de yapılabilir, ancak güvenlik açıkları (ör:

Sql Injection) ve çalışma sırasında problemler çıkabilmektedir.

(19)

Kaynaklar

1. Karabulut M. 2012, Görsel Programlama II Ders Sunuları

Referanslar

Benzer Belgeler

Fon portföyüne yurtdışında ihraç edilen borçlanma araçları ve kira sertifikaları, ortaklık payları, borsa yatırım fonları, yatırım fonları katılma

Fon portföyüne yurtdışında ihraç edilen borçlanma araçları ve kira sertifikaları, ortaklık payları, borsa yatırım fonları, yatırım fonu katılma

Şence Türk, Fatih Terzi, Aliye Ceren Onur (Nov 2010 - Nov 2013 Scolar.), Nüket İpek Çetin (Scholar), Zeynep Deniz Yaman (Scholar), Meltem Delibaş (Scholar), Edin Zaim

Türkiye’de ihraç edilmiş olması durumunda, (borsada işlem görmesi hariç olmak üzere) ihraç belgesinin Kurulca onaylanmış olması, fiyatının veri dağıtım kanalları

Piyasa Riski: Fon portföyünün maruz kaldığı piyasa riski, günlük olarak “Riske Maruz Değer (RMD)” yöntemiyle ölçülmektedir. Riske maruz değer, fon

Katılımcıların ilgili piyasaların açık olduğu günlerde saat 11:00’ e kadar verdikleri pay alım talimatları, talimatın verilmesini takip eden ilk hesaplamada

a- Faiz Oranı Riski: Fon portföyüne faize dayalı varlıkların (borçlanma aracı, ters repo vb) dâhil edilmesi halinde, söz konusu varlıkların değerinde piyasalarda

Sol üst köşedeki ilk 6 hücreyi seçin, sağ tıklayın, hücreleri birleştir seçeneğini tıklayın.. Alternatif Yol: Tablo Araçları ek sekmesinde bulunan Düzen