Upload
merve-cvdr
View
258
Download
5
Embed Size (px)
Citation preview
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!!!!!!!!!!!!!!