İnternet programcılığı ii

Upload: merve-cvdr

Post on 06-Jul-2018

260 views

Category:

Documents


5 download

TRANSCRIPT

  • 8/17/2019 İnternet Programcılığı II

    1/50

    Öğr. Gör. Müslüm ÖZTÜRK  Sayfa 1

    ASP.NET ORTAMINDA C#

    VERİTABANI UYGULAMALARI VERİTABANINA BAĞLANTI GERÇEKLEŞTİRMEK  

    Sayfa Yüklendiğinde; 

    Access Komutu;

    OleDbConnection baglanti;

    baglanti = new OleDbConnection("provider=Microsoft.Jet.OLEDB.4.0; DATA

    Source=" + Server.MapPath("App_Data/deneme.mdb"));

    baglanti.Open();

    baglanti.Close();

    Response.Write("bağlantı başarılı bir şekilde gerçekleştirildi....!!!");

    SQL Komutu;

    SqlConnection baglan = new SqlConnection("Data Source=admin(admin=bilgisayarımızın

    adıdır)\\SQLEXPRESS;initial Catalog=deneme ;integrated security=sspi");

    Response.Write("bağlantı başarılı bir şekilde gerçekleşti");

    baglan.Close();

    COMMAND NESNESİ 

    Form sayfası yüklendiğinde; 

    OleDbConnection baglanti;

    baglanti = new OleDbConnection("provider=Microsoft.Jet.OLEDB.4.0; DATASource=" + Server.MapPath("App_Data/deneme.mdb"));

    baglanti.Open();

    OleDbCommand komut;

    komut = new OleDbCommand("select * from ailebilgileri", baglanti);

    alinan_veri = komut.ExecuteReader();

    baglanti.Close();

    Response.Write("bağlantı başarılı bir şekilde gerçekleştirildi....!!! ve

    veriler command nesnesi ile okundu....!!!!");

    DATAREADER NESNESİ 

    Form sayfası yüklendiğinde; 

  • 8/17/2019 İnternet Programcılığı II

    2/50

    Öğr. Gör. Müslüm ÖZTÜRK  Sayfa 2

    OleDbConnection baglanti;

    baglanti = new OleDbConnection("provider=Microsoft.Jet.OLEDB.4.0; DATA

    Source=" + Server.MapPath("App_Data/deneme.mdb"));

    baglanti.Open();

    OleDbCommand komut;

    komut = new OleDbCommand("select * from ailebilgileri", baglanti);

    OleDbDataReader alinan_veri;

    alinan_veri = komut.ExecuteReader();

    while (alinan_veri.Read())

    {

    Response.Write(alinan_veri["anneadi"] + "
    ");

    }

    FORM NESNELERİNİ KULLANARAK VERİTABANINDAN VERİ ÇEKMEK  

    Button click olayına; (Forma Bir button ve bir de textbox gerek.) 

    string koşul; 

    koşul = TextBox1.Text; 

    OleDbConnection baglanti;baglanti = new OleDbConnection("provider=Microsoft.Jet.OLEDB.4.0; DATA

    Source=" + Server.MapPath("App_Data/deneme.mdb"));

    baglanti.Open();

    OleDbCommand komut;

    komut = new OleDbCommand("select * from ailebilgileri where anneadi like '%" 

    +koşul+ "%'", baglanti);

    OleDbDataReader alinan_veri;

    alinan_veri = komut.ExecuteReader();

    while (alinan_veri.Read())

    {

    Response.Write (alinan_veri["anneadi"] + " " + alinan_veri["babaadi"]

    + " " + alinan_veri["hobileri"] + " " + "
    ");

    }

    ÇİFT KOŞULA BAĞLI OLARAK VERİTABANINDAN VERİ ÇEKMEK  

    Veritabanı: 

    Form Görüntüsü: 

  • 8/17/2019 İnternet Programcılığı II

    3/50

    Öğr. Gör. Müslüm ÖZTÜRK  Sayfa 3

    Button click olayına; (Forma Bir button ve 2 de textbox gerek.)

    string Adı, Soyadı; 

    Adı = TextBox1.Text; 

    Soyadı = TextBox2.Text; 

    OleDbConnection baglanti;

    baglanti = new OleDbConnection("provider=Microsoft.Jet.OLEDB.4.0; DATASource=" + Server.MapPath("App_Data/deneme.mdb"));

    baglanti.Open();

    OleDbCommand komut;

    komut = new OleDbCommand("select * from OgrenciBilgileri where ad Like '%" +

    Adı + "%' AND soyad Like '%" + Soyadı + "%'", baglanti);

    OleDbDataReader alinan_veri;

    alinan_veri = komut.ExecuteReader();

    while (alinan_veri.Read())

    {

    Response.Write(alinan_veri["ad"] + " " + alinan_veri["soyad"] +

    " " + alinan_veri["yaş"] + " " + "
    ");

    }

    VERİTABANINA VERİ EKLEMEK  (INSERT INTO OLAYI)

    //using system.data;

    //using system.data.OleDb; eklemeyi unutmayın!!!!!!!!! 

    Sayfa Yükleme Olayına; 

    OleDbConnection baglanti;

    baglanti = new OleDbConnection("provider=Microsoft.Jet.OLEDB.4.0; Data

    Source=" + Server.MapPath("App_Data/deneme.mdb"));

    baglanti.Open();

    OleDbCommand komut = new OleDbCommand("INSERT INTO OgrenciBilgileri (ad,

    soyad) Values ('Ahmet', 'Can')", baglanti);

  • 8/17/2019 İnternet Programcılığı II

    4/50

    Öğr. Gör. Müslüm ÖZTÜRK  Sayfa 4

    komut.ExecuteNonQuery();

    Response.Write("Veriler Başarılı Bir Şekilde Veritabanına Eklendi.");

    Sql Veritabanını Kullanarak Veritabanına Veri Eklemek; 

    // usins system.data;

    //using system.data.sqlclient; Eklemeyi Unutmayın. 

    SqlConnection baglan = new SqlConnection("Data Source=admin\\SQLEXPRESS;initial

    Catalog=master (Veritabanı adı);integrated security=sspi");

    baglan.Open();

    SqlCommand komut = new SqlCommand("insert into OgrenciBilgileri(Adı,Soyadı)

    values ('Meral','Aktaş')", baglan);

    komut.ExecuteNonQuery();

    Response.Write("Veriler başarılı bir şekilde veritabanına eklendi!");

    baglan.Close();

    FORM ELEMANLARINI KULLANARAK VERİTABANINA VERİ EKLEMEK  

    Forma (bir buton, 4 tane textbox ve 1 tane de label ekleyelim)

    Buton click olayına; 

    //using system.data;

    //using system.data.OleDb; eklemeyi unutmayın!!!!!!!!! 

    string ad, soyad, yaş, doğumtarihi; 

    ad = TextBox1.Text;

    soyad = TextBox2.Text;

    yaş = TextBox3.Text; doğumtarihi = TextBox4.Text; 

    OleDbConnection baglanti;

    baglanti = new OleDbConnection("provider=Microsoft.Jet.OLEDB.4.0; DATA

    SOURCE=" + Server.MapPath("App_Data/deneme.mdb"));

    baglanti.Open();

    OleDbCommand komut;

    komut = new OleDbCommand("insert into OgrenciBilgileri(ad,soyad,yaş,doğumtarihi) values ('" + ad + "', '" + soyad + "', '" + yaş + "', '" +

    doğumtarihi + "')", baglanti);

    komut.ExecuteNonQuery();

    Label1.Text=("Bilgileriniz Başarılı bir şekilde veritabanına kaydedildi.");

    baglanti.Close();

  • 8/17/2019 İnternet Programcılığı II

    5/50

    Öğr. Gör. Müslüm ÖZTÜRK  Sayfa 5

    VERİTABANINDA VERİ GÜNCELLEMEK  (UPDATE SET OLAYI) buraya kadarrrrr

    Sayfa yüklendiğinde yazılacak kod (Sayfaya bir tane Label eklenecektir.);

    OleDbConnection baglanti;

    baglanti = new OleDbConnection("provider=Microsoft.Jet.OLEDB.4.0; DATASource=" + Server.MapPath("App_Data/deneme.mdb"));

    baglanti.Open();

    OleDbCommand komut;komut = new OleDbCommand("UPDATE ailebilgileri SET anneadi='fatma' where

    anneadi like 'islim'", baglanti);

    int updatesayi;

    updatesayi = komut.ExecuteNonQuery();

    Labbel1.Text=(updatesayi + " " + "kayıt güncellendi");

    baglanti.close();

    FORM ELEMANLARINI KULLANARAK VERİTABANINDA VERİ GÜNCELLEMEK  

    Ekran Görüntüsü; 

    Veritabanımız; 

    Button click olayına; 

    OleDbConnection baglanti;

    baglanti = new OleDbConnection("provider=Microsoft.Jet.OLEDB.4.0; DATA

    SOURCE=" + Server.MapPath("App_Data/deneme.mdb"));baglanti.Open();

  • 8/17/2019 İnternet Programcılığı II

    6/50

    Öğr. Gör. Müslüm ÖZTÜRK  Sayfa 6

    OleDbCommand komut;

    komut = new OleDbCommand("UPDATE OgrenciBilgileri SET ad='" + TextBox1.Text +

    "', soyad='" + TextBox2.Text + "', notu='" + TextBox3.Text + "', okulno='" +

    TextBox4.Text + "' WHERE soyad='" + TextBox5.Text + "'", baglanti);

    komut.ExecuteNonQuery();

    baglanti.Close();

    VERİTABANINDA VERİ SİLMEK (DELETE OLAYI)

    Sayfa yüklenme olayına (Sayfaya sadece bir tane label eklenecektir.); 

    OleDbConnection baglanti;

    baglanti = new OleDbConnection("provider=Microsoft.Jet.OLEDB.4.0; DATA

    Source=" + Server.MapPath("App_Data/deneme.mdb"));

    baglanti.Open();

    OleDbCommand komut;

    komut = new OleDbCommand("DELETE From ailebilgileri Where anneadi='islim'",

    baglanti);

    int updatesayi;

    updatesayi = komut.ExecuteNonQuery();

    Label1.Text = (updatesayi + " " + "Kayıt silindi");

    baglanti.Close();

    FORM ELEMANLARINI KULLANARAK VERİTABANINDA VERİ SİLMEK  

    Forma; (Bir textbox ve bir button eklenecek.)

    Veritabanı; 

  • 8/17/2019 İnternet Programcılığı II

    7/50

    Öğr. Gör. Müslüm ÖZTÜRK  Sayfa 7

    Button Click Olayına; 

    OleDbConnection baglan = new OleDbConnection("provider=Microsoft.Jet.OLEDB.4.0; DATA

    SOURCE=" + Server.MapPath("App_Data/deneme.mdb"));

    baglan.Open();

    OleDbCommand uygula = new OleDbCommand("Delete From OgrenciBilgileri Where

    ad='" + TextBox1.Text + "'", baglan);

    uygula.ExecuteNonQuery();

    baglan.Close();

    DATAADAPTER VE DATASET KAVRAMLARI VE UYGULAMASI

    Uygulama 1:

    Forma (1 adet gridwiev eklenecek);

    Sayfa Yükleme Olayına (Page_Load); 

    OleDbConnection baglanti;

    baglanti = new OleDbConnection("provider=Microsoft.Jet.OLEDB.4.0; DATASOURCE=" + Server.MapPath("App_Data/deneme.mdb"));

    baglanti.Open();

    OleDbDataAdapter da = new OleDbDataAdapter("Select * From OgrenciBilgileri",

    baglanti);

    DataSet ds = new DataSet();

    da.Fill(ds, "OgrenciBilgileri");

  • 8/17/2019 İnternet Programcılığı II

    8/50

    Öğr. Gör. Müslüm ÖZTÜRK  Sayfa 8

    GridView1.DataSource = ds;

    GridView1.DataBind();

    Baglanti.close();

    Uygulama 2:

    Forma (1 adet gridview ve 1 adet Button eklenecek);

    Button_Click Olayına; 

    OleDbConnection baglanti;

    baglanti = new OleDbConnection("provider=Microsoft.Jet.OLEDB.4.0; Data

    Source=" + Server.MapPath("App_Data/deneme.mdb"));

    baglanti.Open();

    OleDbDataAdapter da = new OleDbDataAdapter("Select * From OgrenciBilgileri",

    baglanti);

    DataSet ds= new DataSet();

    da.Fill(ds, "OgrenciBilgileri");

    GridView1.DataSource = ds;

    GridView1.DataBind();

    Response.Write("Tüm veriler başarılı bir şekilde gösterildi.");

    COMMAND NESNESİ VE GRİDWİEV GÖSTERİM UYGULAMASI 

    Forma (1 adet gridwiev eklenecek);

    Sayfa Yükleme Olayına (Page_Load); 

    OleDbConnection baglanti;

    baglanti = new OleDbConnection("provider=Microsoft.Jet.OLEDB.4.0; DATA

    SOURCE=" + Server.MapPath("App_Data/deneme.mdb"));baglanti.Open();

    OleDbCommand komut = new OleDbCommand ("Select * From OgrenciBilgileri",

    baglanti);

    OleDbDataReader dr = komut.ExecuteReader();

    GridView1.DataSource = dr;

    GridView1.DataBind();

    ÜYE KAYDI FORMU

    Veritabanımız; 

  • 8/17/2019 İnternet Programcılığı II

    9/50

    Öğr. Gör. Müslüm ÖZTÜRK  Sayfa 9

    Ekran Görüntüsü; 

    Button Click Olayına; 

    string Adınız, Soyadınız, EMailAdresiniz, KullanıcıAdınız, Şifreniz; Adınız = TextBox1.Text; 

    Soyadınız = TextBox2.Text; 

    EMailAdresiniz = TextBox3.Text;

    KullanıcıAdınız = TextBox4.Text; 

    Şifreniz=TextBox5.Text; 

    OleDbConnection baglanti;

    baglanti = new OleDbConnection("provider=Microsoft.Jet.OLEDB.4.0; DATA

    SOURCE=" + Server.MapPath("App_Data/UyelikFormu.mdb"));

    baglanti.Open();

    OleDbCommand komut;komut = new OleDbCommand("insert into Uyeler

    (Adınız,Soyadınız,EMailAdresiniz,KullanıcıAdınız, Şifreniz) values ('" + Adınız + "',

    '" + Soyadınız + "', '" + EMailAdresiniz + "', '" + KullanıcıAdınız + "', '" +

    Şifreniz + "')", baglanti);komut.ExecuteNonQuery();

    Label1.Text = ("Bilgileriniz Başarılı bir şekilde veritabanına kaydedildi.");

    baglanti.Close();

    *ÜYE KAYDI LOGİN İŞLEMLERİ*

    Login Girişi; 

  • 8/17/2019 İnternet Programcılığı II

    10/50

    Öğr. Gör. Müslüm ÖZTÜRK  Sayfa 10

    Veritabanı; 

    Buton_Click Olayına; 

    OleDbConnection baglanti;baglanti = new OleDbConnection("provider=Microsoft.Jet.OLEDB.4.0; DATA

    Source=" + Server.MapPath("App_Data/Yonetici.mdb"));

    baglanti.Open();

    OleDbCommand komut;

    komut = new OleDbCommand("select * From YoneticiGirişi Where

    KullanıcıAdı='"+TextBox1.Text+"' and Şifre='"+TextBox2.Text+"'", baglanti);

    OleDbDataReader alinan_veri;

    alinan_veri = komut.ExecuteReader();

    if (alinan_veri.Read())

    {

    Response.Redirect("YoneticiSayfasi.aspx");

    }

    else 

    {

    Label1.Text=("Kullanıcı adı veya şifre yanlış");

    }

    TÜM VERİTABANI İŞLEMLERİNİN (VERİ ÇEKMEK, VERİ EKLEMEK, VERİ

    GÜNCELLEMEK VE VERİ SİLMEK ) BİR ARADA UYGULANMASI 

    1)  Bu uygulamamızda Web sitemizi dört textbox, dört buton ve bir tanede GridViewyerleştirelim.

  • 8/17/2019 İnternet Programcılığı II

    11/50

    Öğr. Gör. Müslüm ÖZTÜRK  Sayfa 11

    Veritabanı; 

    protected void Button1_Click(object sender, EventArgs e){

    string Ad, Soyad, Adres, Yaş; 

    Ad = TextBox1.Text;

    Soyad = TextBox2.Text;

    Adres = TextBox3.Text;Yaş = TextBox4.Text; 

    OleDbConnection baglanti;

    baglanti = new OleDbConnection("provider=Microsoft.Jet.OLEDB.4.0; DATA

    SOURCE=" + Server.MapPath("App_Data/deneme1.mdb"));

    baglanti.Open();

    OleDbCommand komut;

    komut = new OleDbCommand("insert into OgrenciBilgileri (Ad,Soyad,Adres, Yaş)

    values ('" + Ad + "', '" + Soyad + "', '" + Adres + "', '" + Yaş + "')", baglanti);

    komut.ExecuteNonQuery();

    Label1.Text = ("Bilgileriniz Başarılı bir şekilde veritabanına kaydedildi.");

    baglanti.Close();

  • 8/17/2019 İnternet Programcılığı II

    12/50

    Öğr. Gör. Müslüm ÖZTÜRK  Sayfa 12

    }

    protected void Button2_Click(object sender, EventArgs e)

    {

    string Ad, Soyad, Adres, Yaş; 

    Ad = TextBox1.Text;

    Soyad = TextBox2.Text;Adres = TextBox3.Text;

    Yaş = TextBox4.Text; 

    OleDbConnection baglanti;

    baglanti = new OleDbConnection("provider=Microsoft.Jet.OLEDB.4.0; DATA

    SOURCE=" + Server.MapPath("App_Data/deneme1.mdb"));

    baglanti.Open();

    OleDbCommand komut;

    komut = new OleDbCommand("DELETE From OgrenciBilgileri Where Ad='+ Ad +'",

    baglanti);

    komut.ExecuteNonQuery();

    Label1.Text = ("Adı "+Ad+" veri başarılı bir şekilde silindi.");

    baglanti.Close();

    }

    protected void Button3_Click(object sender, EventArgs e)

    {

    string Ad, Soyad, Adres, Yaş; 

    Ad = TextBox1.Text;

    Soyad = TextBox2.Text;

    Adres = TextBox3.Text;

    Yaş = TextBox4.Text; 

    OleDbConnection baglanti;

    baglanti = new OleDbConnection("provider=Microsoft.Jet.OLEDB.4.0; DATASOURCE=" + Server.MapPath("App_Data/deneme1.mdb"));

    baglanti.Open();

    OleDbCommand komut;

    komut = new OleDbCommand("Update OgrenciBilgileri Set Yaş='"+Yaş+"' Where

    Ad='" + Ad + "'", baglanti);

    komut.ExecuteNonQuery();

    Label1.Text = ("Adı "+Ad+" olan kişinin Yaşı= "+Yaş+" olarak güncellendi");

    baglanti.Close();

    }

    protected void Button4_Click(object sender, EventArgs e)

    {

    string Ad, Soyad, Adres, Yaş; 

    Ad = TextBox1.Text;Soyad = TextBox2.Text;

    Adres = TextBox3.Text;

    Yaş = TextBox4.Text; 

    OleDbConnection baglanti;

    baglanti = new OleDbConnection("provider=Microsoft.Jet.OLEDB.4.0; DATA

    SOURCE=" + Server.MapPath("App_Data/deneme1.mdb"));

    baglanti.Open();

    OleDbCommand komut;

    komut = new OleDbCommand("Select * From OgrenciBilgileri", baglanti);

  • 8/17/2019 İnternet Programcılığı II

    13/50

    Öğr. Gör. Müslüm ÖZTÜRK  Sayfa 13

    OleDbDataReader veri;

    veri=komut.ExecuteReader();

    GridView1.DataSource = veri;

    GridView1.DataBind();

    Label1.Text = ("Veriler başarılı bir şekilde DataGrid'te gösterildi.");

    baglanti.Close();

    }

    VERİTABANINA KULLANICI EKLERKEN AYNI KULLANICI ADINDA BİRKULLANICININ OLUP OLMADIĞINI KONTROL EDEN KODUMUZ 

    Forma (1 adet Button ve 2 adette TextBox Eklenecektir.)

    Button_Click Olayına; 

    OleDbConnection baglanti;

    baglanti = new OleDbConnection("provider=Microsoft.Jet.OLEDB.4.0; DataSource=" + Server.MapPath("App_Data/Mesajlarim.mdb"));

    baglanti.Open();

    OleDbCommand komut = new OleDbCommand("select* from Mesajlar where

    Ad='"+TextBox1.Text+"'", baglanti);

    OleDbDataReader dr;

    dr = komut.ExecuteReader();

    if (dr.Read())

    {

    Response.Write("bu isimde bir kulanıcı adı vardır. lütfen başka birkullanıcı adı belirleyiniz");

    }

    else 

    {

    OleDbConnection baglan;

    baglan = new OleDbConnection("provider=Microsoft.Jet.OLEDB.4.0; DataSource=" + Server.MapPath("App_Data/Mesajlarim.mdb"));

    baglan.Open();

    OleDbCommand kmt = new OleDbCommand("insert into Mesajlar (Ad, Soyad)

    Values ('"+TextBox1.Text+"', '"+TextBox2.Text+"')", baglan);

    kmt.ExecuteNonQuery();

    Response.Write("Yeni Kullanıcınız müthiş bir şekilde kaydedildi");

    baglan.Close();

    }

  • 8/17/2019 İnternet Programcılığı II

    14/50

    Öğr. Gör. Müslüm ÖZTÜRK  Sayfa 14

    !!!!ASP FLASH EKLEME!!!!

    Önce flash kontrolü indirilerek daha sonra toolbox-------sağ tıkla--------choose items ten flashkontrolü eklenilir.Flashcontrolfor.net olarak googleden aratılır.) 

    MAİL GÖNDERME KODU (YAPTIĞINIZ SİTE ÜZERİNDEN MAİL GÖNDERMEMİZEYARAYAN KOD BLOĞU) 

    Form Tasarımı: 

    Sayfaya (4 tane TextBox ve 1 tane de Button Eklenecektir.)

    // Using System.Net;

    // Using System.Net.Mail; Eklemeyi Unutmayın. 

    protected void Button1_Click(object sender, EventArgs e){

    MailMessage mail = new MailMessage(); // Mail sınıfını Kullanıyoruz. 

    mail.To.Add(TextBox1.Text); //gönderilecek olan mail adresi 

    mail.From = new MailAddress(TextBox2.Text); //kimden gönderilecek. 

    mail.Subject = "ardalartarim.com üzerinden... Adı: " + TextBox3.Text;//mailin konusu... txtad adlı texboxtan da ismini aldırdım. kaldırabilirsiniz...

    mail.Body = TextBox4.Text + "
    Gönderenin epostası:" +

    TextBox2.Text; //mailin içeriği. txtmesaj ve txteposta textboxları kullandım.

    mail.IsBodyHtml = true; //html kodlarına izin verilsin. 

    SmtpClient client = new SmtpClient("smtp.gmail.com", 587); //gmail smtp

    adresi tanımlaması client.EnableSsl = true; // Gmail için sslin aktif olması gerekiyor. 

    NetworkCredential credentials = new NetworkCredential("[email protected]",

    "ardalar47"); //gmail kullanıcı adı ve şifre... Şifre bölümünü değiştirin(***)

    client.Credentials = credentials;

    try 

    {

    client.Send(mail);

    Response.Write("Mesaj gönderildi. Teşekkür ederiz");

    }

    catch (Exception hata)

    {Response.Write(hata); //hata ayıklama ile hata olduğunda hata mesajı

    yazdırılacak.

    }

    TextBox1.Text

    TextBox2.Text

    TextBox3.Text

    TextBox4.Text

  • 8/17/2019 İnternet Programcılığı II

    15/50

    Öğr. Gör. Müslüm ÖZTÜRK  Sayfa 15

    }

    DROPDOWNLİST’TEN SEÇİLEN BİR İLİN İLÇELERİNİN GÖSTERİLMESİ 

    Forma (2 adet dropdownlist, App_Data altına ise Örnek sadece bir il seçildiğinde o ile aitilçeler dropdownlist2 de gösterileceği için İller ve İlçeler adında iki tane de veritabanı tablosueklenecektir.)

    Formumuz;

     Not: İller kısmına istenilirse page_load’a  bağlantı sağlanıp dropdownliste iller gösterilebilir. 

    Kodumuz;

    protected void DropDownList1_SelectedIndexChanged(object sender, EventArgs e)

    {

    if (DropDownList1.SelectedIndex == 1)

    {

    OleDbConnection baglanti;

    baglanti = new OleDbConnection("provider=Microsoft.Jet.OLEDB.4.0; DATA

    SOURCE=" + Server.MapPath("App_Data/ilçeler.mdb"));

    baglanti.Open();

    OleDbCommand komut = new OleDbCommand("select * from ilçeler", baglanti);

    OleDbDataReader dr = komut.ExecuteReader();

    while (dr.Read())

    {

    ListItem item = new ListItem();

    item.Text = dr["ilçeadı"].ToString();

    DropDownList2.Items.Add(item);

    }

    dr.Close();

    baglanti.Close();

    }

    }

    Ekran Çıktısı; 

    TÜRKÇE-İNGİLİZCE SÖZLÜK UYGULAMASI

  • 8/17/2019 İnternet Programcılığı II

    16/50

    Öğr. Gör. Müslüm ÖZTÜRK  Sayfa 16

    Veritabanımız; 

    Formumuz;

    Kodumuz;

    // Using System.Data;

    // Using System.Data.OleDb; Eklemeyi unutmayınız; 

    OleDbConnection baglanti;

    baglanti = new OleDbConnection("provider=Microsoft.Jet.OLEDB.4.0; DATASOURCE=" + Server.MapPath("App_Data/deneme.mdb"));

    baglanti.Open();

    OleDbDataAdapter da = new OleDbDataAdapter("Select * From OgrenciBilgileri

    where ingilizce like '%" + TextBox1.Text + "%'", baglanti);

    DataSet ds = new DataSet();

    da.Fill(ds, "OgrenciBilgileri");

    GridView1.DataSource = ds;

    GridView1.DataBind();

    baglanti.Close();

    LABELDE KAYIT SAYILARINI GRİDVİEW’DE İSE KAYITLARI GÖSTEREN C#

    KODU

    Formumuz;

  • 8/17/2019 İnternet Programcılığı II

    17/50

    Öğr. Gör. Müslüm ÖZTÜRK  Sayfa 17

    Kodumuz;protected void Page_Load(object sender, EventArgs e)

    {

    SqlConnection baglanti;baglanti = new SqlConnection("Data Source=Admin\\sqlexpress; initial

    catalog=Baglan; integrated security=true");

    baglanti.Open();

    SqlCommand komut = new SqlCommand("Select count(*) From Uyekayit", baglanti);

    object sayi=komut.ExecuteScalar();

    Label1.Text = Convert.ToString(sayi);

    baglanti.Close();

    SqlConnection baglanti1;

    baglanti1 = new SqlConnection("Data Source=Admin\\sqlexpress; initialcatalog=Baglan; integrated security=true");

    baglanti1.Open();

    SqlCommand komut1 = new SqlCommand("Select count(*) From UyeSayisi",

    baglanti1);

    object sayi1 = komut1.ExecuteScalar();

    Label2.Text = Convert.ToString(sayi1);

    baglanti1.Close();

    }

    protected void Button1_Click(object sender, EventArgs e)

    {

    SqlConnection baglanti;

    baglanti = new SqlConnection("Data Source=Admin\\sqlexpress; initial

    catalog=Baglan; integrated security=true");

    baglanti.Open();

    SqlCommand komut = new SqlCommand("Select * From Uyekayit", baglanti);

  • 8/17/2019 İnternet Programcılığı II

    18/50

    Öğr. Gör. Müslüm ÖZTÜRK  Sayfa 18

    SqlDataReader dr = komut.ExecuteReader();

    GridView1.DataSource = dr;

    GridView1.DataBind();

    baglanti.Close();

    }

    VERİ ERİŞİM KONTROLLERİ (DATA SOURCE KONTROLLERİ) 

    1.  AccessDataSource Kontrolü: (SqlDataSource Kontrolü içinde aynımantık söz konusudur.) 

    GridView 

    ASP.NET 1.0 ve 1.1 ile geliştirdiğimiz web uygulamalarında sıkça kullandığımız bir kontrol olan "DataGrid", yerini dahageliştirilmiş olan "GridView" kontrolüne bıraktı. Aslına bakarsanız ASP.NET 2.0 "DataGrid" kontrolüne hala sahip ve

    ASP.NET 1.1 projelerinizde kullandığınız DataGrid kontrolüne de hala destek vermekte. ASP.NET 2.0'ın sahip olduğuDataGrid kontrolünde de bir takım gelişmeler var. Örneğin tema yapısına ve "AccessDataSource", "XmlDataSource" gibiyeni Data Source kontrollerine destek veriyor.

    Peki "GridView" kontrolünün "DataGrid" kontrolüne göre avantajları neler:  

    GridView kontrolü, DataGrid kontrolünün aksine, mobil tarayıcılar tarafından da gayet sağlıklı biçimdegörüntülenebiliyor. 

    GridView kontrolüne, "Seç", "Düzenle", "Sil" gibi butonlar otomatik olarak ekletilebiliyor. 

    GridView kontrolü üzerinde, bir satırı güncellemek ve ya silmek için "hiç" kod yazmanız gerekmiyor.  

    GridView kontrolü üzerinde sıralama işlemi yapmak için "hiç" kod yazmanız gerekmiyor. 

    AccessDataSource 

    Bizi OLEDB ile bağlantı oluşturmak, SQL cümlelerini kodun içine yazmak gibi birçok dertten kurtaran bir kontrol:AccessDataSource.

     AccessDataSource kullanarak veritabanınızdaki bilgilerinizi GridView, DataGrid, DetailsView, FormView, Repeater gibikontroller üzerine göstermek, düzenlemek, silmek gibi işlemler için hemen hemen hiç kod yazmanıza gerek yok. Hattaaz sonra örneğimizde de göreceğiniz üzere; hiç kod yazmanızı gerektirmeyecek senaryolar bile olabilir.

    Peki teknik olarak AccessDataSource kontrolünü nasıl tanımlayabiliriz? Sanırım en uygun tanım "Access veritabanı(Access kullanılarak geliştirilmiş veritabanı katmanı diyerek genelleyebiliriz) ile iş katmanımız arasındaki iletişimisağlayan .NET Framework 2.0 ile birlikte gelen yeni data kontrolüdür" olacaktır. 

    İki kontrolün ortaklaşa kullanımı ile ilgili örnek  

    Şimdi bir örnek yapalım ve bu örneğimiz az sonra oluşturacağımız Access veritabanında bulunan "Kullanici lar"tablomuzdaki kayıtları düzenlememizi ve silmemizi sağlasın. 

    Öncelikle Access uygulamamızı açarak veritabanımızı, tablomuzu ve kolonlarını oluşturalım: 

    http://www.yazgelistir.com/makale/asp-net-2-0-gridview-ve-accessdatasource#accessdatasourcehttp://www.yazgelistir.com/makale/asp-net-2-0-gridview-ve-accessdatasource#accessdatasourcehttp://www.yazgelistir.com/makale/asp-net-2-0-gridview-ve-accessdatasource#accessdatasource

  • 8/17/2019 İnternet Programcılığı II

    19/50

    Öğr. Gör. Müslüm ÖZTÜRK  Sayfa 19

    Oluşturmuş olduğumuz tabloyu "Kullanicilar" ismi ile kaydettim. Dikkat ettiyseniz "AutoNumber" alanının etrafınıçizdim; çünkü kayıt düzenleme ve silme işlemlerimizde kullanacağımız "AccessDataSource" kontrolü

    (SqlDataSource kontrolü de aynı şekilde) düzenleme ve silme işlemleri için "Key" özelliğinde bir sütun istiyor. 

    Oluşturduğumuz veritabanını "Add Existing Item" seçeneği ile "App_Data" klasörümüze ekleyelim: 

  • 8/17/2019 İnternet Programcılığı II

    20/50

    Öğr. Gör. Müslüm ÖZTÜRK  Sayfa 20

    Sırasıyla GridView ve AccessDataSource kontrollerini ekleyip, ilgili özelliklerini verelim:  

  • 8/17/2019 İnternet Programcılığı II

    21/50

    Öğr. Gör. Müslüm ÖZTÜRK  Sayfa 21

    GridView kontrolünü sayfamıza sürüklediğimizde, "Smart Tag" ekranı otomatik olarak açılacaktır: 

    "Smart Tag" ekranında, "Choose Data Source" bölümünde, "New Data Source..." seçeneğini seçip, gerekliadımları izleyerek yeni bir AccessDataSource oluşturalım: 

    İlk ekranda bizden istenen "Data Source Type" olarak "Access Database" seçeneğini seçtim. Bu seçim, bizimiçin yeni bir "AccessDataSource" kontrolü oluşturacak. Ayrıca DataSource ID'si olarak da"dataSourceKullanicilar" yazdım: 

  • 8/17/2019 İnternet Programcılığı II

    22/50

    Öğr. Gör. Müslüm ÖZTÜRK  Sayfa 22

    İşlemimi onayladığımda, karşıma MDB dosyamın nerede olduğunu soran yeni bir ekran çıktı:  

    "Browse" butonuna tıkladığımda da, projemin içeriğini gösteren yeni bir ekran ile karşılaştım ve bu ekranda daprojeme "db1.mdb" olarak eklediğim dosyayı seçtim: 

  • 8/17/2019 İnternet Programcılığı II

    23/50

    Öğr. Gör. Müslüm ÖZTÜRK  Sayfa 23

    İşlemi onayladığımda, yine MDB dosyamın nerede olduğunu soran ekrana geri döndüm ve dosya yolununyazılı olduğunu gördüm: 

    Not:   Dosya yolunda bulunan " ~  " işareti .NET Framework için projenin yolu ile eş anlamlıdır. 

    Şimdi bu ekrandaki işlemimizi de onaylayalım ve bir sonraki ekranımız olan "Select" cümlemizin seçileceğiekrana geçelim. "Select" cümlemizi yazacağımız ekran aşağıdaki gibi olacaktır: 

  • 8/17/2019 İnternet Programcılığı II

    24/50

    Öğr. Gör. Müslüm ÖZTÜRK  Sayfa 24

    Görmüş olduğunuz gibi Access veritabanımızdaki tablomuz, tablomuzun sahip olduğu alanlar gibi bilgiler

    otomatik olarak alındı. Şimdi tüm bilgileri çekecek olan "Select" cümlemizi oluşturalım:  

  • 8/17/2019 İnternet Programcılığı II

    25/50

    Öğr. Gör. Müslüm ÖZTÜRK  Sayfa 25

     Artık "Select" cümlemize sahibiz.

    Not:   Ekranda görünmekte olan " Return only unique rows " seçeneğini seçmeniz durumunda, Selectcümlenizin içerisine "DISTINCT" kelimesi eklenir. Ayrıca "Order By..." butonuna tıklanarak sıralama işlemi ileilgili bilgiler "Select" cümlesine eklenebilir ve "Where..." butonuna tıklanarak da "Select" cümlesi içerisinde yeralan "Where" ifadesi oluşturulabilir. 

    Şimdi yapmamız gereken "Düzenle" ve "Sil" cümlelerini oluşturmak. Bunun için ekranda görünen "Advanced"butonuna tıklayacağız ve karşımıza yeni bir ekran çıkacak: 

  • 8/17/2019 İnternet Programcılığı II

    26/50

    Öğr. Gör. Müslüm ÖZTÜRK  Sayfa 26

    Karşımıza 2 seçenek çıktı. Bunlardan ilki ekle, düzenle ve sil SQL cümlelerimizin oluşturulup

    oluşturulmayacağı. İkinci seçenek ilk seçeneği seçmediğiniz sürece aktif olmayan bir seçenektir. İkinciseçeneğin seçilmesi durumunda, AccessDataSource kontrolü düzenlemek istediğimiz satırın en son "Select"işleminden sonra başka birisi tarafından güncellenip güncellenmediğini kontrol eder ve güncelleme varsakullanıcıyı uyarır. Makalede bu konuya ayrıntılı olarak girmeyeceğim. 

    Şimdi yalnızca ilk seçeneği işaretleyip "OK" butonuna basıyorum: 

  • 8/17/2019 İnternet Programcılığı II

    27/50

    Öğr. Gör. Müslüm ÖZTÜRK  Sayfa 27

    "Select" cümlemizi oluşturduğumuz ekrana geri döndük. Şimdi "Next" butonuna basıp bir sonraki ekranımız

    olan "Test" ekranına geçelim: 

  • 8/17/2019 İnternet Programcılığı II

    28/50

    Öğr. Gör. Müslüm ÖZTÜRK  Sayfa 28

    "Select" cümlemizi test etmek için "Test Query" butonuna basalım: 

  • 8/17/2019 İnternet Programcılığı II

    29/50

    Öğr. Gör. Müslüm ÖZTÜRK  Sayfa 29

    Sorgumuz hiçbir hata almadan çalıştı. Hiç kayıt olmadığı için hiç kayıt getirmemesi tabi ki normal.

    "Finish" butonuna basarak işlemi sonlandıralım ve sayfamızı görelim: 

  • 8/17/2019 İnternet Programcılığı II

    30/50

    Öğr. Gör. Müslüm ÖZTÜRK  Sayfa 30

    Görmüş olduğunuz gibi, GridView kontrolümüz tablomuzdaki alanlara göre kolonlarına otomatik olarak sahip

    oldu, AccessDataSource kontrolümüz otomatik olarak oluşturuldu ve "Smart Tag" ekranına da yeni seçeneklergeldi.

    Şimdi sayfalama, sıralama, düzenleme ve silme işlemlerini, "Smart Tag" ekranındaki seçenekleri aşağıdaki gibiseçerek aktif hale getirelim: 

  • 8/17/2019 İnternet Programcılığı II

    31/50

    Öğr. Gör. Müslüm ÖZTÜRK  Sayfa 31

    GridView kontrolümüze yeniden baktığımızda; Sayfalama satırının eklendiğini, "Edit", "Delete" butonlarının

    otomatik olarak eklendiğini ve sütun başlıklarının otomatik olarak sıralama işlemlerini gerçekleştirecek linklerhalini aldıklarını görürüz: 

  • 8/17/2019 İnternet Programcılığı II

    32/50

    Öğr. Gör. Müslüm ÖZTÜRK  Sayfa 32

    Sıra geldi İngilizce olarak oluşturulan butonlarımızı Türkçe olarak değiştirmeye. Bunun için "Smart Tag"

    ekranındaki "Edit Columns" seçeneğine tıklamamız gerekmekte: 

  • 8/17/2019 İnternet Programcılığı II

    33/50

    Öğr. Gör. Müslüm ÖZTÜRK  Sayfa 33

     Açılan ekranda "CommandField" sütununu seçelim: 

  • 8/17/2019 İnternet Programcılığı II

    34/50

    Öğr. Gör. Müslüm ÖZTÜRK  Sayfa 34

    Gerekli özellikleri değiştirelim: 

    Not:   (Ben bu ekranda ButtonType özelliğini de "Link" değil, "Button" olarak değiştirdim. Bu nedenle GridViewkontrolümüzdeki butonlar artık link şeklinde değil, buton şeklinde gözükecektir) 

    Not:   Özelliklerin bulunduğu ekranda, aşağıda görmüş olduğunuz ekran görüntüsünde görünende daha f azlaTürkçeleştirme seçeneği vardır. (NewText, InsertText, SelectText, vs.) 

  • 8/17/2019 İnternet Programcılığı II

    35/50

    Öğr. Gör. Müslüm ÖZTÜRK  Sayfa 35

    GridView kontrolümüze tekrar bakalım: 

  • 8/17/2019 İnternet Programcılığı II

    36/50

    Öğr. Gör. Müslüm ÖZTÜRK  Sayfa 36

     Artık butonlarımız Türkçe yazılara sahipler. Veritabanına birkaç kayıt atıp, sayfamızı çalıştırmamızın zamanı

    geldi. Öncelikle kayıtlarımızı ekleyelim: 

  • 8/17/2019 İnternet Programcılığı II

    37/50

    Öğr. Gör. Müslüm ÖZTÜRK  Sayfa 37

    Şimdi de sayfamızı açalım: 

  • 8/17/2019 İnternet Programcılığı II

    38/50

    Öğr. Gör. Müslüm ÖZTÜRK  Sayfa 38

    "Coskun" kullanıcısı üzerine düzenle işlemi yapmak için "Düzenle" butonuna tıklayalım: 

  • 8/17/2019 İnternet Programcılığı II

    39/50

    Öğr. Gör. Müslüm ÖZTÜRK  Sayfa 39

    Görmüş olduğunuz gibi ilgili satır "Düzenle" moduna geçti, sol tarafındaki butonlar "Kaydet" ve "İptal" olarak

    değişti, ayrıca "Key" olarak tanımladığımız "KullaniciID" harici alanlarda TextBox kontrolüne dönüştü.  

    Şimdi kayıt üzerinde birkaç değişiklik yapalım: 

  • 8/17/2019 İnternet Programcılığı II

    40/50

    Öğr. Gör. Müslüm ÖZTÜRK  Sayfa 40

    Kaydet butonuna basalım: 

    Not:   Kaydetme işlemi sırasında "Operation must use an updatable query." şeklinde bir hata alırsanız, MDBdosyanıza "MakinaIsmi \ ASPNET" kullanıcısının yazma hakkı olup olmadığını kontrol etmeli ve eğer hakkı yokise bu hakkı tanımlamalısınız. 

  • 8/17/2019 İnternet Programcılığı II

    41/50

    Öğr. Gör. Müslüm ÖZTÜRK  Sayfa 41

    Kayıt işlemi başarıyla tamamlandı. Şimdi bir tane kayıt silelim. Ben 3 numaralı kaydı sileceğim. Sil butonuna

    bastım: 

  • 8/17/2019 İnternet Programcılığı II

    42/50

    Öğr. Gör. Müslüm ÖZTÜRK  Sayfa 42

    Ve artık 3 numaralı kaydımız yok. Bir de veritabanından bakalım: 

  • 8/17/2019 İnternet Programcılığı II

    43/50

    Öğr. Gör. Müslüm ÖZTÜRK  Sayfa 43

    Görmüş olduğunuz üzere kayıt veritabanında da görünmemekte. 

    Sıra geldi sıralama işlemlerine. Kayıtlarımız şu anda veritabanındaki sıralarında. Kayıtlarımızı "AdSoyad"alanına göre sıralamak için yapmamız gereken tek şey başlığına tıklamak: 

    Hiç kod yazmadan, sıralama işlemini gerçekleştirdik. Eğer tersten sıralama yapmak istersek de, "AdSoyad"alanının başlığına tekrar yazmamız yeterli: 

  • 8/17/2019 İnternet Programcılığı II

    44/50

    Öğr. Gör. Müslüm ÖZTÜRK  Sayfa 44

    UYGULAMA (GridView’de seçilen bir kayıtın ad kısmınıntextbox ta gösterilmesi) 

    Sayfaya (1 adet Accessdatasource, 1 adet gridview ve 1

    adet textbox ekleyelim)

    Bu uygulamada ilk başta sayfaya bir adet accessdatasource, bir adet gridview ve 1 adet textboxeklenecek ve gridview Accessdatasource bağlanıldıktan sonra aşağıdaki işlemler yapılacaktır. 

    GridView’i dan Enabled Selection seçeneğini seçiniz. Böylelikle seçtiğimiz satırı belirlemiş 

  • 8/17/2019 İnternet Programcılığı II

    45/50

    Öğr. Gör. Müslüm ÖZTÜRK  Sayfa 45

    olacağız. 

    Daha sonra GridView nesnemizi çift tıklayarak GridView1_SelectedIndexChanged olayına aşağıdaki kodumuzu yazalım. 

     protected void GridView1_SelectedIndexChanged(object sender, EventArgs e)

    {int deger;

    deger = GridView1.SelectedIndex;

    TextBox1.Text = GridView1.Rows[deger].Cells[2].Text;

    TextBox2.Text = GridView1.Rows[deger].Cells[3].Text;

    Böylece seçtiğiz satıra ait Ad kolonu textbox’a aktarılacaktır. 

    REPORTVIEWER ( )

    Raporlarımızı görüntülemek için kullanılan bir kontroldür. 

    UYGULAMA

  • 8/17/2019 İnternet Programcılığı II

    46/50

    Öğr. Gör. Müslüm ÖZTÜRK  Sayfa 46

    1) Yeni bir Web sayfası açınız. Solution Explorerda bulunan projemizin ismini sağ tıklayarak Add New 

    Item seçeneğini tıklayınız. 

    2) Karşımıza gelen Add New Item penceresinden DataSet objesini seçerek Add butonuna basınız. 

    Karşımıza gelen uyarı penceresinde Yes diyerek geçelim. Solution explorerda App_Code klasörüoluşacak ve içerisine DataSet1.xsd dosyasını eklendiğini göreceksiniz. Eklendikten sonra karşımıza

    bağlantı sihirbazı gelecektir. Sql Server dan veritabanımızı tıklayıp veritabanımızda bulunan tablolarıgösterelim. Hangi tablolara ait rapor oluşturmak istiyorsak o tabloyu sürükle-bırak mantığı ileekranımıza taşıyalım. Tablo ekledikten sonra karşımıza tablonun kolonları gelecektir. 

    3) Yine projemizin üstünde sağ tıklayarak bu sefer Report nesnesini ekleyelim. 

  • 8/17/2019 İnternet Programcılığı II

    47/50

    Öğr. Gör. Müslüm ÖZTÜRK  Sayfa 47

    4) Report nesnemizi ekledikten sonra karşımıza Report Designı gelecektir. Kolonlarımızı DataSource 

    kısmında görmemiz gerekiyor.

    Yukarıda Ekranı görebilmemiz için New----DataSet sekmesini tıklamamız gerekiyor. 

    5) Kolonlardan Ad, Soyad ve Adres kolonlarını sürükleyerek tasarım alanına koyunuz.

    6) Default.aspx sayfasına ReportViewer kontrolü ekleyiniz. Chose Report kısmından Report.rdlcdosyanızı seçiniz.

  • 8/17/2019 İnternet Programcılığı II

    48/50

    Öğr. Gör. Müslüm ÖZTÜRK  Sayfa 48

    7) Kodumuzu çalıştırdığımızda kayıdın geldiğini görebiliriz. Report tasarım alanına gelerek tasarımalanına chart (grafik) ekleyelim. 

    8) Grafik tipini değiştirerek istediğiniz görüntüyü elde edebilirsiniz. Tasarım alanına eklenin grafik’isağ tıklayarak Chart type’ı belirleyiniz. Biz örneğimizde Simple Column seçeneğinden göstereceğiz. 

  • 8/17/2019 İnternet Programcılığı II

    49/50

    Öğr. Gör. Müslüm ÖZTÜRK  Sayfa 49

    9) Grafiğimizi bir kez tıkladığımızda grafik’in kenarlarında alanlar oluşur. Bu alanlar üst tarafdabulunan alan önemlidir. Burası gelen datalarımızın grafik şeklinde oluşmasını sağlar. Sağ taraf isehangi rengin kime ait olduğunu gösterecek. Ad ve yas data kolonlarını sürükleyip bırakınız. 

    10) Default.aspx sayfamızı çalıştırarak grafiğimizin oluşması sağlanacaktır. 

  • 8/17/2019 İnternet Programcılığı II

    50/50

    Böylelikle basit bir düzeyde raporlamada ReportViewer’ı kullanabiliriz. 

    NAVİGASYON BURDAYIMMM!!!!!!!!!!!!!!