bilgiz.org

Çalıştırmak için neye ihtiyacımız var programlama dili seçerek kodlamaya değil mi?




Sayfa5/5
Tarih02.07.2017
Büyüklüğü425.5 Kb.

Indir 425.5 Kb.
1   2   3   4   5

namespace (Uygulamanın adı)seviyesinde tanımlanıp, aynı namespace içindeki farklı formlardan çağırmak: Örnek:


a- Form1 üzerindeyken class yazıldı

namespace WinApp_Class_kodda

{

public class en_tepe

{

public void en_tepe_ic()

{

MessageBox.Show("Bu en tepe deneme classı");
}
}

}
b- Bu classı form2 den çağırıyoruz

private void button2_Click(object sender, System.EventArgs e)

{

en_tepe et=new en_tepe();

et.en_tepe_ic();
}

NOT: Bu seviyede oluşturulacak class, mutlaka form class ından sonra türetilmeli

4- class dosyası oluşturarak çağırma:

    1. Class dosyasını oluşturmak için Solution Explorer penceresinde projemiz ismi üzerinde sağ tıklayıp Add-Class tıklanır.

    2. Sınıfımıza bir isim verilip add edilir.

Örnek: Bir class dosyası oluşturup, iki tane alt program yazalım, sonra da form1 üzerindeki iki ayrı buton click olayında bu alt programları çağıralım

NOT: 1- Projeye eklenen bu class dosyasında MessageBox ı çalıştırmak için class dosyasına using tanımlama komutu ile “System.Windows.Forms;” eklenir. (örnek: using System.Windows.Forms;)

2- Oluşturulan bu class dosyası içinde birden çok class oluşturulabilir

      1. Adım

namespace classlar

class mesajlar

public void mesaj1()

{

MessageBox.Show("mrb 1");

}

public void mesaj2()

{

MessageBox.Show("mrb 2");

}

}

      1. Adım

namespace classlar

{

public partial class Form1 : Form

{

public Form1()

{

private void button1_Click(object sender, EventArgs e)

{

mesajlar msj = new mesajlar();

msj.mesaj1();

}

private void button2_Click(object sender, EventArgs e)

{

mesajlar msj2 = new mesajlar();

msj2.mesaj2();

}

}

  1. Calss Projesi oluşturup, Bu projeyi çağırmak:

    1. Önce Create Project seçiminden gelen pencereden “Wibdows- Calss Library” seçilir.

    2. Name bölümünde class a bir ad verilir

    3. Açılan cs uzantılı sayfada default olarak gelen class adı isteğe göre değiştirilir

    4. Bu classın içine public tanımlama komutu ile istenilen kadar alt program yazılır (bu alt programlar bu class ın metotları olacaktır)

    5. Alt programlara ad verilirken yapılan işin türüne göre public komutundan sonra tür belirtilir. (örnek: public double hesap(int a, int b) burada hesap alt programının içindeki sonuç double olacağından alt programı da double olarak tanımladık. Ayrıca alt programda işlemler bittikten sonra “return” komutu ile sonuç çağrıldığı yere geri gönderilir.

(örnek: public double hesap(int a, int b)

{

double c;

c = a * b;

return c;

}



    1. Class projemizde kod yazım aşaması bittikten sonra solution Explorer daki proje adı üzerinde Mouse sağ buton listesinden “build” seçeneği tıklanarak proje derlenir (dll dosyası oluşturulur)

    2. Bu class ı Windows uygulamasında çalıştırmak için bir WinApp projesi oluşturulur

    3. Oluşturulan bu uygulamaya class projesi içindeki dll dosyası referans edilir ( Project-Add Reference menüsünden açılan ileti kutusundaki Browse sekmesinden class proje klasörü açılır, bin-debug klasörü içindeki dll uzantılı dosya referans edilir)

    4. Class daki alt programların çalışması için; önce bu classtan bir nesne oluşturulur (örnek: Classlarim.Calssim1 hes = new Classlarim.Calssim1();)

    5. Oluşturulan bu nesnenin metoduna parametreleri gönderilerek sonuç türetilir

(örnek: label1.Text="Sonuç:" + Convert.ToString(hes.hesap(s1, s2));)

    1. Sonuç istenilen gibi kullanılır


VERİ İŞLEMLERİ

Veri tabanı işlemlerini gerçekleştirmek için ADO.Net nesnesine ihtiyaç vardır (bkz: ADO_nedir.doc)
ADO nesnesi .Net ile geliştirilmiş ve özellikle veri sağlayıcı olarak da kullanılmıştır. Bildiğimiz OLEDB veri sağlayıcının yanı sıra microsoftun gözde veri tabanı SQL Server için SQLConnection veri sağlayıcı geliştirmiştir. Ancak Başka veri tabanlarına bağlantı için varolan OLEDB ve ODBC veri sağlayıcıları için de nesneler geliştirdi. Oracle veri tabanının .Net platformunda yazılan yazılımlarda sıklıkla kullanıldığını gördüğünde artık onun için de Oracle veri sağlayıcısını enson olarak geliştirdi. .NET Framework OLEDB veri kaynağı ve SQLServer veri kaynağını desteklerken artık diğer veri sağlayıcılarını da desteklemektedir.
.Net Veri Sağlayıcı Nesneleri (ADO.Net'in metodları)

Verilere erişmek, almak, kullanmak, güncelleştirmek için belirli etkileşime giren sınıflar vardır;

Connection nesnesi(bağlantı): Veri tabanına bağlanmada kullanılır. (örnek: sqlconnection, oledbconnection,odbcconnection, oracleconnection)

Command nesnesi(komut): Verileri veri tabanına kaydetmek için kullanılan nesnedir. Yani DML(Data Manipulation) komutları olan (Insert,Update ve delete işlemlerinde) kullanılır. (örnek: sqlcommand, oledbcommand,odbccommand, oraclecommand)

DataAdapter nesnesi(veri bağdaştırıcısı): Dataset ile connection arasında köprü vazifesi oluşturur. 4 komut nesnesi ile kullanılır. (InsertCommand, UpdateCommand, DeleteCommand ve SelectCommand)

DataReader(veri okuyucusu) Veri kaynağından salt veri okuyan bir nesnedir. Salt okuma modu olduğundan ek yükü düşüktür. (tek alan ya da iki alan içeren, ilişki ve kısıtlama içermeyen verilerin okunmasında kullanılır)

Dataset nesnesi: Veri tabanından belirli kriterlere dayalı alınan veri setini saklar. DataSet nesnesi ile birden çok tablodan veri okutması yapılabilir. Dolayısıyla veri tablosu topluluğu içerdiği gibi, Relation (ilişki) topluluğu ve kısıtlamaları içeren sonuçları içerir.
Veri tabanı işlemleri yapmak için kullanılan yöntemler:

.Net platformunda eğer veri tabanı kullanılacaksa diğer yazılım ortamlarında da olduğu gibi mutlaka veri tabanı ile iletişim sağlanmalıdır. Bu iletişim formun tasarım zamanında da sağlanabilir, kod zamanında da sağlanabilir. Veri tabanı ile iletişim (connection) işlemler için yeterli değildir. Aynı zamanda veri seti (dataset), comut seti(command) ve bu setlerle bağlantı arasında köprü işi yapan bir adaptöre (dataAdapter) de ihtiyaç vardır.

(bkz: ADO_nedir.doc)

.Net de veri tabanı bağlantısı için kullanılan ADO nesnesi genel olarak iki türlü oluşturulur.

  1. Tasarım Zamanı: ToolBox dan dataGridView1 alınır. Alınan dataGridView1 in doldurulması için

  • Sağ üst köşedeki dataGridView1 Tasks açılır

  • Choose Data Source listesinden ya önceki data connection lar seçilir ya da

  • Alt kısımda bulunan “Add Project Data Source” linki tıklanarak veri tabanı ve listelenecek tablo seçilir

  • NOT: DataBase bin/Debug klasörünün içinde olmalı



  1. Run time zamanı (Arka plan kodları içinde grid doldurma) Eğer DataBase connection kod içinde oluşturulacaksa aşağıdaki adımlar izlenmelidir.

  • using System.Data.OleDb; satırı formun en üst seviyesine yazılarak OleDb classı projeye eklenir

  • OleDbConnection bag = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;DATA Source=OGRENCI.mdb");  satırı ile veri tabanına bağlantı yapılır. (bu bağlantı eğer class seviyesinde tanımlanırsa forma bağlı her türlü alt programlarda kullanılır.

  • bag.Open(); bağlantı açılır (bağlantı formun load olayında açılıp, closed olayında kapatılacaksa mutlaka formun class seviyesinde oluşturulmalıdır)

  • OleDbDataAdapter adtr = new OleDbDataAdapter("select * From MESLEKLER", bag);  sanal tablonun oluşturulmasında connection ile arasında işlem hızını artırmak için dataAdabter nesnesi oluşturulur.

  • DataTable tablo = new DataTable(); Sanal tablo nesnesi oluşturulur

  • adtr.Fill(tablo); adapter in fill metoduyla sanal tablo dolduruldu

  • dataGridView1.DataSource = tablo; Grid dolduruldu

- tablo.Dispose();

bag.Close();  tablo yok edildi, bağlantı kapatıldı
NOT: Uygulama Web uygulaması ise bağlantı ---db_baglanti = new OleDbConnection(“Provider=Microsoft.Jet.OLEDB.4.0;DATA Source=” + Server.MapPath(“~/App_Data/veritabanim34.mdb”));--- şeklinde de olabilir

  1. Veri tabanında DML komutlarını çalıştırma (insert, update, delete)




  • Kayıt ekleme :

Örnek uygulama: (MESLEKLER tablosuna kayıt ekleme)

OleDbConnection bag = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;DATA Source=OGRENCI.mdb");

bag.Open();

string sql = null;

sql = "";

sql = "INSERT INTO MESLEKLER (MESLEK_KODU,MESLEK_ADI) VALUES (" + textBox1.Text + ",'" + textBox2.Text + "')";

OleDbCommand cmd = new OleDbCommand(sql, bag);

cmd.ExecuteNonQuery();

bag.Close();

MessageBox.Show("Kayıt yapıldı");


  • Kayıt Güncelleme:

Örnek uygulama: (MESLEKLER tablosunda aranan bir kaydın güncellenmesi)

private void button4_Click(object sender, EventArgs e)

{

if (TxtKod.Text == "" || TxtAd.Text == "")

{

MessageBox.Show("Güncelleyecek veri bulamadım, lütfen arama yapınız");
}

else

{

string sql = "";

sql = "update MESLEKLER SET MESLEK_ADI='" + TxtAd.Text + "' WHERE MESLEK_KODU="+ int.Parse(TxtKod.Text);

OleDbCommand cmd = new OleDbCommand(sql, bag);

cmd.ExecuteNonQuery();

MessageBox.Show("Kayıt güncellendi");

cmd.Dispose();


}

}


  • Kayıt Silme:

Örnek uygulama: (MESLEKLER tablosunda aranan bir kaydın silinmesi)

private void button2_Click(object sender, EventArgs e)

{

if (TxtKod.Text == "")

{

MessageBox.Show("Lütfen aranan meslek kodunu giriniz");

}

else

{

string sql = "";

sql = " delete from MESLEKLER WHERE MESLEK_KODU=" + int.Parse(TxtKod.Text);

OleDbCommand cmd = new OleDbCommand(sql, bag);

cmd.ExecuteNonQuery();

MessageBox.Show("Veriler veriler silindi");

}

}

  1. Açılır liste (Combo doldurma):

Örnek uygulama: (MESLEKLER le doldurma)

bag.Open();

string sql = "";

sql = "select * from MESLEKLER ORDER BY MESLEK_ADI";
OleDbCommand cmd = new OleDbCommand(sql,bag);
OleDbDataReader rdr = cmd.ExecuteReader();
while (rdr.Read()) //datareaderin sonuna gelene kadar oku

{

comboBox1.Items.Add(rdr[1]); //2.kolon elemanlari ekleniyor

}

bag.Close();

  1. Kayıt Arama ve gelen verilerin textlere aktarılması:

private void button3_Click(object sender, EventArgs e)

{

TxtKod.Enabled = false;
string sql;

sql = "";

sql = "select * from MESLEKLER WHERE MESLEK_ADI like\'%" + (TxtAd.Text + "%\'");

OleDbDataAdapter adtr = new OleDbDataAdapter(sql, bag);

DataTable tablo = new DataTable();

adtr.Fill(tablo);

if (tablo.Rows.Count == 0)

{

MessageBox.Show("Kayıt bulunamadı");

}

else

{

TxtKod.Text = tablo.Rows[0]["MESLEK_KODU"].ToString();

TxtAd.Text = tablo.Rows[0]["MESLEK_ADI"].ToString();

tablo.Dispose();

}


}


  1. DataGrid den seçili satırdaki verileri alma: Bu işlemin gerçekleştirilmesi için DataGridWiew nesnesinin “CellClick” olayına aşağıdaki örnek kodlar yazılabilir:


private void dataGridView1_CellClick(object sender, DataGridViewCellEventArgs e)

{

int secili = dataGridView1.SelectedCells[0].RowIndex;

textBox1.Text = dataGridView1.Rows[secili].Cells[0].Value.ToString();

}
XML DOKÜMANLARI

XML(Extensible Markup Language) Nedir: Çok farklı tipteki verileri orijinal formatlarında tek bir havuzda tutabilen, bilgiye hızlı, kolay ve ortamdan bağımsız olarak erişebilme imkanı veren, genişletilebilir işaretleme dilidir.

1-DataTable İçeriğini XML’e Kaydetmek: Veri tabanında oluşturduğumuz tablonun içeriğini XML dosyasına kaydedebilirsiniz. Bunun için aşağıdaki adımları takip edebilirsiniz.

- Bağlantıyı oluşturun

OleDbConnection bag = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;DATA Source=OGRENCI.mdb");

  • Veriyi oluşturun

sql = "select * from ILLER WHERE IL_KODU IN(6,42,68,38,18,19,3,26) ORDER BY IL_ADI";

  • DataAdapter oluşturun

OleDbDataAdapter adtr = new OleDbDataAdapter(sql, bag);

  • DataSet oluşturun

DataTable dt = new DataTable();

dt.TableName = "deneme";


  • DataSet i doldurun

adtr.Fill(dt);

  • DataSet i XML dosyasına kaydedin

dt.WriteXml("C://sinif.xml", XmlWriteMode.IgnoreSchema);
NOT: a- WriteXml() metodu iki parametreye sahiptir. Birinci parametrede XML dosyasının

adı, ikinci parametrede de XML dosyaya yazma modu belirtilir. İkinci parametre

belirtilmediği takdirde dosyanın modu IgnoreSchema olarak varsayılır. IgnoreSchema

özelliğiyle sadece DataTable’daki kayıtlar dosyaya yazdırılacaktır.

  1. Sadece şema bilgilerini dosyaya yazdırılmak istendiğinde WriteXmlSchema() metodu

kullanılır.

dt.WriteXmlSchema("C://XMLSemha.xml");
2-XML Dosyayı Datasete aktarmak: Bir XML dosya içinde bulunan verileri Program içinde oluşturacağınız dataset nesnesine aktarabilirsiniz, şöyleki;

  • Formun üzerine bir Dataset nesnesi alın ya da kod içinde bir Dataset nesnesi oluşturun

  • ds.ReadXml("C://sinif.xml", XmlReadMode.Auto); Dataset nesnesinin ReadXml metodu ile XML dosyası alınır. ReadXml() kendisine iki parametre alır. Birinci parametrede XML dosyanın adı, ikinci parametredeyse XML dosyası okuma modu seçilir.

  • Alınan bu Dataset i Grid e aktararak görüntüleyebilirsiniz.

Örnek: dataGridView1.DataSource = ds.Tables[0];
NOT: XML dosyadan şema bilgilerini (ReadSchema) okuyabileceğiniz gibi sadece bilgileri

de (IgnoreSchema) okuyabilirsiniz.XML dosyaya sadece şema bilgilerini (WriteXmlSchema) yazdırdıysanız ve okuma için ReadXml() metodunu kullandıysanız DataTable nesnesinin içeriği boş olarak görüntülenir. ReadXml() metodu yerine ReadXmlSchema() metodunu kullanmanız gerekir.

Gülcay KORKMAZ



Yazılım Uzmanı & BT Eğitmeni

1   2   3   4   5






    Ana sayfa


Çalıştırmak için neye ihtiyacımız var programlama dili seçerek kodlamaya değil mi?

Indir 425.5 Kb.