Yazılımcının Günlüğü | YazilimGunlugu.Com
Arama
Makale Kategorileri
Üye Girişi
Şuanki online üyeler()
Aktif üye bulunmamaktadır.


XML Datayı Okuma, Listeleme ve Yeni Kayıt Ekleme İşlemleri

Yazar: ismail aktaş

Kategori: XML WEB Servisleri

Eklenme Tarihi: 08.06.2007 07:06:04

Merhabalar. Bu makalemizde bir XML dosyasını veritabanı gibi kullanıp temel veritabanı işlemlerinden olan kayıt listeleme ve yeni kayıt ekleme yapacağız. Başka herhangibir veritabanı (SQL,Access,MySQL) kullanmayacağız.
XML Datayı Okuma, Listeleme ve Yeni Kayıt Ekleme İşlemleri

Merhabalar.
Bu makalemizde bir XML dosyasını veritabanı gibi kullanıp temel veritabanı işlemlerinden olan kayıt listeleme ve yeni kayıt ekleme yapacağız. Başka herhangibir veritabanı (SQL,Access,MySQL) kullanmayacağız.

Visual Studio kullanarak Yeni bir ASP.NET Web Site projesi oluşturalım.
Otomatik olarak oluşturulan default.aspx sayfasına bir Buton ve bir Gridview kontrolü ekleyelim.
Şöyle bir görüntü oluşacaktır.



Bir sonraki adım olarak xml dosyamızı oluşturalım.
Ben bu işlem için yeni bir xml dosyası yaratarak birkaç kayıt ekledim ve adına veri.xml vererek oluşturdum.

<?xml version="1.0" standalone="yes"?>

<Arabalar>

<Araba>

<ArabaID>1</ArabaID>

<ArabaAdi>Ferrari</ArabaAdi>

<ArabaModel>2006</ArabaModel>

<ArabaFiyat>50000</ArabaFiyat>

<ParaBirimi>Euro</ParaBirimi>

</Araba>

<Araba>

<ArabaID>2</ArabaID>

<ArabaAdi>Porsche</ArabaAdi>

<ArabaModel>2005</ArabaModel>

<ArabaFiyat>40000</ArabaFiyat>

<ParaBirimi>Euro</ParaBirimi>

</Araba>

<Araba>

<ArabaID>3</ArabaID>

<ArabaAdi>Mazda</ArabaAdi>

<ArabaModel>2006</ArabaModel>

<ArabaFiyat>10000</ArabaFiyat>

<ParaBirimi>Dolar</ParaBirimi>

</Araba>

<Araba>

<ArabaID>4</ArabaID>

<ArabaAdi>Tofaş</ArabaAdi>

<ArabaModel>2005</ArabaModel>

<ArabaFiyat>6000</ArabaFiyat>

<ParaBirimi>YTL</ParaBirimi>

</Araba>

<Araba>

<ArabaID>5</ArabaID>

<ArabaAdi>Renault</ArabaAdi>

<ArabaModel>2006</ArabaModel>

<ArabaFiyat>15000</ArabaFiyat>

<ParaBirimi>YTL</ParaBirimi>

</Araba>

</Arabalar>


Veritabanı olarak kullanacağımız veri.xml dosyamızı oluşturduktan sonra “Datayı Getir” butonuna tıklanıldığında Xml verinin okunup, Gridview kontrolünde gösterilmesini sağlayacak olan datagetir() alt yordamını yazalım.

Öncelikle sayfa direktifi olarak system.data namespace 'ini ekleyelim.

<%@ Page Language="VB" %>

<%@ Import Namespace="System.Data"%>

<script runat="server">

Dim objds As New DataSet

Protected Sub Button1_Click(ByVal sender As Object, ByVal e As System.EventArgs)

Call datagetir()

End Sub

Sub datagetir()

Dim xmlyol As String = Server.MapPath("veri.xml")

objds.ReadXml(xmlyol)

GridView1.DataSource = objds.Tables(0).DefaultView

GridView1.DataBind()

End Sub

</script>


Datagetir() alt yordamını sayfamıza ekledikten sonra ilk test işlemine geçebilir ve xml verinin listelenmesini test edebiliriz.
Herşey yolunda giderse sayfayı çalıştırdıktan sonra “Datayı Getir” butonuna tıkladığımızda karşımıza aşağıdaki ekran görüntüsü gelecektir.


Bu işlem sonucunda kayıt listeleme işlemini yapmış bulunuyoruz.
Şimdi kayıtlar üzerinde yeni kayıt ekleme yapalım.


Kayıt ekleme işlemine Gridview kontrolünün altına basit bir form ekleyerek başlayalım.

Ekle butonuna basıldığında yürütülecek olan işlem için butonun tıklama olayına yazılacak olan kod şu şekilde olacaktır.

Protected Sub Button2_Click(ByVal sender As Object, ByVal e As System.EventArgs)

Dim xmlyol As String = Server.MapPath("veri.xml") ' verilerin olduğu xml dosyasının yolu alınıyor

Dim objds1 As New DataSet

objds1.ReadXml(xmlyol) ' Dataset nesnesi tarafından okunan yoldaki xml veri dosyası okunuyor ve dataset olusturuluyor.

Dim ArabaID As Integer

Dim sonsatirno As Integer = objds1.Tables(0).Rows.Count - 1 'xml dosyasındaki son kayıt bulunuyor.

ArabaID = objds1.Tables(0).Rows(sonsatirno)(0) + 1 ' Bulunan kayıtın ID numarasına 1 eklenerek yeni ID no olusturuluyor.

Dim yenikayit As DataRow = objds1.Tables(0).NewRow ' yeni bir kayıt satırı oluþturuluyor

yenikayit("ArabaID") = ArabaID

yenikayit("ArabaAdi") = TextBox1.Text

yenikayit("ArabaModel") = TextBox2.Text

yenikayit("ArabaFiyat") = TextBox3.Text

yenikayit("ParaBirimi") = TextBox4.Text

objds1.Tables(0).Rows.Add(yenikayit) ' Kayıt satırına eşitlenen bilgiler toplam bir satır olarak dataset nesnesine ekleniyor.

objds1.WriteXml(xmlyol) 'Yeni kayıt eklendikten sonra xml dosyasının yeni hali tekrar yazılarak kayıt yapılmış oluyor.

Call datagetir() ' Yeni kaydı ekranda göstermek için verileri ekrana döken yordam çağrılıyor.

End Sub


Şimdi text alanlara yeni veriler girerek ekle butonuna basıp olacakları görelim.

Evet, gördüğünüz gibi araba kayıtlarımız arasına 6 numaralı kayıt olarak Toyota ' da eklendi.
Burada dikkatinizi bir noktaya çekmek istiyorum. Yeni kayıt ekleme esnasında kayda verilen ID numarası, birönceki kaydın ID numarasının +1 olarak arttırılması sonucunda oluşuyor.
Bunun bir iyi birde kötü tarafı olabilir.

İyi tarafı, son kayıt silinse dahi son eklenecek kayıt birönceki numaranın +1 değerini alacağından sıralama düzgün olarak devam edecek.

Kötü tarafı, silinen kayıtla bağlantılı başka kayıtlar varsa ve silinme sonucunda o kayıtlarda silinmemişse doğal olarak o kayıtlar yeni eklenen kayda atanacaktır. Biraz karışık oldu ama kısaca bu durumun oluşmaması trigger mantığı kullanarak bir kayıt silindiğinde o kayıtla ilişkili tüm kayıtların silinmesi gereklidir diyebililiz.

Gelecek makalelerimde kayıtları güncelleme ve silme işlemlerine de değineceğim.


  • Makalenin kaynak kodlarına ulaşmak için buraya tıklayınız.

    Umarım faydalı olmuştur.

    İsmail AKTAŞ
  • Yazar Hakkında 2 Yorum Yorum Yaz Yazara ait diğer Makaleler
    Tema
    Anket
    ASP.NET MVC'yi Projeleriniz de kullandınız mı?


    En Çok Okunan Makaleler
    En Son Eklenen Makaleler
    Soru Merkezinde Bekleyenler
    Ana Sayfa | Hakkımızda | Editörler | Yazarlar | RSS RSS | İletişim
    Yazılım Günlüğü 2007-2013 © Tüm Hakları Saklıdır.