Coder

24 Aralık 2012

Ado.Net veri kayıt et güncelle sil

Microsoft’un veriye erişmek için geliştirdiği teknoloji Ado.net ile veritabanımızdaki verilere ulaşarak veri alış verişi yaptırabiliyoruz.(Bu ilk cümleyi kurmak için harcadığım zamanı yazının devamı için harcamıyorum :) ) Sık sık kullandığımız bu teknolojiyi bazen unutabiliyoruz. Arayüz aracılığı ile basit bir kayıt nasıl yapılır yada güncelleme, silme… Hatırlatma ve öğrenme babında bu yazıyı yazmak istedim.

ado-net-kayit-guncelle-sil

Resimdeki gibi basit bir form hazırlayıp Ado.net teknolojisi sayesinde veritabanına nasıl kayıt girme, güncelleme, silme gibi işlemleri beraber yapalım. Formdan önce Management Studio da bir veritabanı oluşturup içerisine tblKullanıcılar(farklı bir isim verebilirsiniz) adında tablo oluşturarak devam edebiliriz.

ado-net-veritabani

Resimdeki gibi formu oluştururken kafanız karışmasın, öğrenme maksadı ile yaptığım için ayrı ayrı butonlar ile olayları uyguladım. Burada kayıdı göstermek için listview kontrolünü kullandım. Aynı zamanda kayıt edildikten sonra listview e kayıt edilen veriyi çektim.

Listview’e veritabanındaki veriyi göstermek için, kod içinde tekrar tekrar yazmamak için listview doldurma metodunu hazırladım.

[cc lang="c#"]

private void listviewDoldur()
{
listView1.Items.Clear();
SqlConnection sql = new SqlConnection(“server=.; database=coder; trusted_connection=true;”);

SqlCommand doldur = new SqlCommand(“select * from tblKullanicilar”, sql);
sql.Open();
SqlDataReader rdr = doldur.ExecuteReader();
while (rdr.Read())
{
ListViewItem li = new ListViewItem();
li.Text = rdr["ID"].ToString();
li.SubItems.Add(rdr["Adi"].ToString());
li.SubItems.Add(rdr["Soyadi"].ToString());
li.SubItems.Add(rdr["Telefon"].ToString());
li.SubItems.Add(rdr["Adres"].ToString());

listView1.Items.Add(li);
}

sql.Close();
}

[/cc]

Listview doldurma metodunu kayıt, güncelleme ve silme işlemlerinden sonra kullanacağız. Güncelleme veya silme işlemi yapabilmek için listviewden kayıt seçmemiz gerekir. Kayıtı seçip tekrar textboxlar içinde göstererek  kayıtlı veri üzerinde işlem yapabiliriz. Listview içindeki veriyi textboxlar içinde gösterebilmek için listview kontrolünün SelectedIndexChanged olayına alttaki kodları yazalım. id değişkenini güncelleme ve silme işleminde referans olarak kullanacağımız için  glabal olarak tanımladım.

[cc lang="c#"]

string id;
private void listView1_SelectedIndexChanged(object sender, EventArgs e)
{
if (listView1.SelectedItems.Count > 0)
{
ListViewItem li = listView1.SelectedItems[0];
id = li.SubItems[0].Text;
txtAdi.Text = li.SubItems[1].Text;
txtSoyadi.Text = li.SubItems[2].Text;
txtTelefon.Text = li.SubItems[3].Text;
txtAdres.Text = li.SubItems[4].Text;

}
}

[/cc]

İlk önce veritabanına kayıt işlemini gerçekleştirelim

[cc lang="c#"]

private void btnKaydet_Click(object sender, EventArgs e)
{
SqlConnection sql = new SqlConnection(“server=.; database=coder; trusted_connection=true;”);

SqlCommand cmd = new SqlCommand();
cmd.Connection = sql;
cmd.CommandType = System.Data.CommandType.Text;
cmd.CommandText = “insert into tblKullanicilar (Adi, Soyadi, Telefon, Adres) values (@adi, @soyadi, @telefon, @adres)”;
cmd.Parameters.AddWithValue(“@adi”,txtAdi.Text );
cmd.Parameters.AddWithValue(“@soyadi”, txtSoyadi.Text);
cmd.Parameters.AddWithValue(“@telefon”, txtTelefon.Text);
cmd.Parameters.AddWithValue(“@adres”, txtAdres.Text);

sql.Open();

int etkilenen = cmd.ExecuteNonQuery();

sql.Close();

if (etkilenen > 0)
{
MessageBox.Show(“Kayıt edildi…”);
}
else
{
MessageBox.Show(“Kayıt edilmedi !!!”);
}

//Listview i dolduruyoruz alttaki metod ile

listviewDoldur();

}

[/cc]

 

Kayıt edilmiş veriyi  güncelleme yapabilmek için;

 

[cc lang="c#"]

private void btnGuncelle_Click(object sender, EventArgs e)
{
SqlConnection sql = new SqlConnection(“server=.; database=coder; trusted_connection=true;”);

SqlCommand cmd = new SqlCommand();
cmd.Connection = sql;
cmd.CommandType = System.Data.CommandType.Text;
cmd.CommandText = “update tblKullanicilar set Adi=@adi, Soyadi=@soyadi, Telefon=@telefon, Adres=@adres”;
cmd.Parameters.AddWithValue(“@adi”, txtAdi.Text); // buradaki id global tanımladığımız değişken aracılığı ile listview de seçilen kayıdın id sini tutmakta
cmd.Parameters.AddWithValue(“@soyadi”, txtSoyadi.Text);
cmd.Parameters.AddWithValue(“@telefon”, txtTelefon.Text);
cmd.Parameters.AddWithValue(“@adres”, txtAdres.Text);

sql.Open();

int etkilenen = cmd.ExecuteNonQuery();

sql.Close();

if (etkilenen > 0)
{
MessageBox.Show(“Güncellendi…”);
listviewDoldur();
}
else
{
MessageBox.Show(“Güncelleme başarısız !!!”);
}
}

[/cc]

Kayıt edilmiş veriyi silmek için,

 

[cc lang="c#"]

private void btnSil_Click(object sender, EventArgs e)
{
SqlConnection sql = new SqlConnection(“server=.; database=coder; trusted_connection=true;”);

SqlCommand cmd = new SqlCommand();
cmd.Connection = sql;
cmd.CommandType = System.Data.CommandType.Text;
cmd.CommandText = “delete from tblKullanicilar where ID=@id”;
cmd.Parameters.AddWithValue(“@id”, id); // buradaki id global tanımladığımız değişken aracılığı ile listview de seçilen //kayıdın id sini tutmakta

sql.Open();

int etkilenen = cmd.ExecuteNonQuery();

sql.Close();

if (etkilenen > 0)
{
MessageBox.Show(“Güncellendi…”);
listviewDoldur();
}
else
{
MessageBox.Show(“Güncelleme başarısız !!!”);
}
}

[/cc]

5 Yorum »

  1. Bu makalelerde kulandığınız örnekleri eklerseniz çok sevinirim

    Yorum by akdyazilim — 11 Şubat 2014 @ 08:47

  2. güncelleme işlemi yaparken tüm satır ve sütünlar etkileniyor.. cmd.Parameters.AddWithValue(“@adi”, txtAdi.Text); // buradaki id global…. burada bir yazım eksikliğiniz olabilirmi acaba ?

    Yorum by cetinbalduz — 14 Ağustos 2014 @ 21:11

  3. Açıklama orada fazladan yazılmış, update yaparken Adi=@adi, Soyadi=@soyadi, Telefon=@telefon, Adres=@adres bilgileri güncellenmek de. Id nin güncellemek saçma olur…

    Yorum by Murat M.oğlu — 14 Ağustos 2014 @ 21:27

  4. yalnız hala tablomun tümü etkileniyor update işleminde :)

    Yorum by cetinbalduz — 14 Ağustos 2014 @ 21:34

  5. ee biraz acemilikte var bnde

    Yorum by cetinbalduz — 14 Ağustos 2014 @ 21:35

Bu yazıya yapılan yorumlar için RSS beslemeleri. TrackBack URL

Yorum yapın

Powered by WordPress