• Sonuç bulunamadı

Yerel Veritabanında İstenilen Kayda / Kayıtlara Ulaşmak

N/A
N/A
Protected

Academic year: 2021

Share "Yerel Veritabanında İstenilen Kayda / Kayıtlara Ulaşmak"

Copied!
19
0
0

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

Tam metin

(1)

Ankara Üniversitesi

Nallıhan Meslek Yüksekokulu

Yerel Veritabanında İstenilen Kayda / Kayıtlara Ulaşmak

İLERI GÖRSEL PROGRAMLAMA

ÖĞR.GÖR. MAHMUT KILIÇASLAN

(2)

Konular [1]

CurrencyManager sınıfı

◦ Veriler üzerinde gezinti yapabilmek DataTable üzerindeki verileri işlemek

◦ Ekleme, silme ve güncelleme

(3)

CurrencyManager sınıfı [1]

Formda herhangi bir kontrole bağlanmış olan veri kaynağı üzerinde işlem yapmayı sağlayan sınıftır

◦ Kayıtlar arası ileri-geri gezinti

◦ Yeni kayıt ekleme

◦ Kayıt silme

◦ Kayıt güncelleme

Bu sınıf işlemlerini orijinal veri kaynağı (ör: SQL Server veritabanı) üzerinde

değil, onun yerel kopyası (ör: DataTable) üzerinde gerçekleştirir.

(4)

CurrencyManager sınıfı [1]

(5)

CurrencyManager sınıfı [1]

Veri herhangi bir kontrole bağlandıktan sonra BindingContext ve DataTable sınıflarını kullanarak CurrencyManager alınır.

DataTable dt = new DataTable();

dt.Load(cmd.ExecuteReader() );

dataGridView1.DataSource = dt;

CurrencyManager cm =

(CurrencyManager)BindingContext[dt];

(6)

CurrencyManager sınıfı [1]

CurrencyManager sınıfı özellikleri Özellik İşlev

cm.Position Aktif kaydın sıra numarasını verir (0’dan başlayarak) cm.Count DataTable üzerindeki kayıt sayısını verir

cm.Current Aktif kaydın kendisini verir (DataRow nesnesi

olarak)

(7)

CurrencyManager sınıfı [1]

CurrencyManager sınıfı metotları

Metot İşlev

cm.AddNew() DataTable’a yeni, boş bir kayıt ekler cm.RemoveAt() Sıra numarası verilen kaydı siler

cm.EndCurrentEdit() Aktif olarak kullanıcı tarafından değiştirilen kaydın güncellemesini tamamlar

cm.CancelCurrentEdit() Aktif olarak kullanıcı tarafından değiştirilen

kaydın değişiklerini iptal eder (geri alır)

(8)

CurrencyManager sınıfı [1]

CurrencyManager sınıfı ile yapılan değişiklikler DataTable üzerinde gerçekleşir.

Dolayısıyla DataTable hangi görsel kontrole bağlı ise değişiklikler o görsel kontrole de yansır

Görsel kontrol üzerinde kullanıcı tarafından elle yapılan değişiklikler de DataTable’a yansımaktadır

DataTable üzerindeki değişiklikler orijinal veritabanı verilerini etkilemez,

sadece yerel kopya değiştirilmektedir.

(9)

CurrencyManager sınıfı [1]

CM kullanarak kayıtlar arası gezebilmek için Position özelliğini artırmak veya azaltmak gerekmektedir.

Bir sonraki kayda gitmek için

◦ cm.Position = cm.Position + 1

veya

◦ cm.Position++;

Bir önceki kayda gitmek için

◦ cm.Position = cm.Position – 1;

veya

◦ cm.Position--;

(10)

CurrencyManager sınıfı [1]

İlk kayda gitmek için

◦ cm.Position = 0;

İkinci kayda gitmek için

◦ cm.Position = 1;

Son kayda gitmek için

◦ cm.Position = cm.Count – 1;

(11)

CurrencyManager sınıfı [1]

İlk kaydı silmek için

◦ cm.RemoveAt ( 0 );

İkinci kaydı silmek için

◦ cm.RemoveAt ( 1 );

Son kaydı silmek için

◦ cm.RemoveAt ( cm.Count – 1);

Aktif kaydı silmek için

◦ cm.RemoveAt ( cm.Position );

(12)

CurrencyManager sınıfı [1]

Aktif kaydı kullanıcı onayı alarak silmek için

DialogResult d = MessageBox.Show(

"Silme onayı",

"Kaydı silmek istiyor musunuz ?", MessageBoxButtons.YesNo );

if (d == DialogResult.Yes) {

cm.RemoveAt(cm.Position);

}

(13)

Örnek uygulama [1]

Musteriler tablosunu DataGridView’a bağlayalım

DataGridView üzerinde ileri-geri-ilk-son kayda gitmek için düğmeler…

Aktif kaydı silmek için bir düğme…

Yeni kayıt eklemek için de bir düğme yerleştirelim

(14)

Örnek uygulama [1]

(15)

Örnek uygulama [1]

Form_Load sırasında veri SqlConnection, SqlCommand ve DataTable kullanılarak çekilir

private void Forml_Load(object sender, EventArgs e)

{

SqlConnection c = new SqlConnection(); c.ConnectionString = @"Data Source=.\SQLEXPRESS;

AttachDbFilename=C:\dell\ticaret.mdf;

Integrated Security=True;

Connect Timeout=30;

User Instance=True";

c.Open();

SqlCommand crad = new SqlCommand("SELECT * FROM müşteriler", c);

DataTable dt = new DataTable();

dt.Load(cmd.ExecuteReader());

dataGridViewl.DataSource = dt;|

c.Close();

c.Dispose();

}

(16)

Örnek uygulama [1]

CurrencyManager nesnesi global olarak tanımlanır ve Form_Load içinde alınır

public partial class Form1 : Form {

CurrencyManager cm;

public Form1() {

InitializeComponent();

}

private void Forml_Load(object sender, EventArgs e) {

SqlConnection c = new SqlConnection();

c.ConnectionString = @"Data Source=.\SQLEXPRESS; AttachDbFilename=C:\dell\ticaret.mdf;

Integrated Security=True; Connect Timeout=30; User Instance=True";

c.Open();

SqlCommand cmd = new SqlCommand("SELECT * FROM müşteriler", c);

DataTable dt = new DataTable();

dt.Load(cmd.ExecuteReader());

dataGridViewl.DataSource = dt;

cm = (CurrencyManager) BindingConText[dt];

c.Close();

c.Dispose();

} }

(17)

Örnek uygulama [1]

Daha sonra her düğmenin click olayında “cm” nesnesine erişerek istenen işlemler yapılır.

private void button6_click(object sender, EventArgs e)

{

cm.RemoveAt(cm.Position);

}

private void buttonl_Click(object sender, EventArgs e) {

cm.Position = 0;

}

private void button2_click(object sender, EventArgs e) {

cm.Position--;

}

private void button4_Click(object sender, EventArgs e) {

cm.Position++;

}

private void button3_Click(object sender, EventArgs e) {

cm.Position = cm.count - 1;

}

(18)

Örnek uygulama [1]

Kayıtlar arası gezinti sırasında aktif kaydı aşağıdaki şekilde göstermek için

Bu kod parçası her gezinti düğmesinin click olayı içinde tekrar etmelidir.

Label1.Text = (cm.Position + 1) + " / " + cm.Count;

(19)

Kaynaklar

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

Referanslar

Benzer Belgeler

Veri sağlayıcılarını sadece bir veri kaynağı için yapılan özel veri sağlayıcıları ve bir çok veri kaynağına hitap eden genel veri sağlayıcıları olarak 2'ye

Sunucu adı bilinmiyorsa veya bir ağ sunucusu ise (server name altından browse for more tıklanır)... Yeni Server Kayıt

Saklı prosedürün çalıştırılması esnasında @sicil değişkeninin değeri ve @kullaniciAd değikeninin değeri olarak bir değer atanmadıysa hata mesajının

Veritabanına dışarıdan veri almak için veritabanı üzerinde fareyle sağ tıklayarak açılan menüden Task komutuyla Import Data komutunu kullanılmaktadır.. Örnek

 Yine, Query sayfasında yazılan Stored Procedure kodlarını siliniz ve sonuçların gösterilmesi için gerekli olan kodları yazınız. Resim 2.21: Stored

• Bir türü veya türleri gövde sayısı ı tespit et ek içi kulla ılır.. • Özellikle otsu topluluklara

Bu tebliğin amacı 1829’da yayınlanan ilk Türkçe süreli yayın Vekayi-i Misriyye’den ve 1830’da yayınlanan ilk resmi gazete Takvim-i Vekayi’den 1950’ye kadar

Kalkınma Planı ve Köy Kanunu Taslağıyla Türk Kamu Yönet m S stem ne g ren ve dünyada örnekler bulunan Ger Çağırma Mekan zmasını başta yerel demokras ve