mehmetduran.com - Paylaşmak Güzeldir...
Asp.net ile Veritabanında Tutulan Verilerin Özetini Çekme
Bu yazımda internette çok sık kullanılan yöntemlerden biri olan verilerin özetini çekme olayını nasıl yapabileceğimizi anlatacağım. Bu işlemde asp.net ile c sharp kullanarak veritabanından çekeceğimiz verilein özet bilgisini elde edeceğiz. Bu olayı yapmak için birkaç yöntem kullanabiliriz. Kendi geliştireceğimiz yöntemlerle daha farklı yöntemlerde elde etmemiz mümkün. Ben bunlardan birkaçı hakkında bahsedeceğim. Bunların yanında birde Asp.net ile html taglar bulunan bir string verisinde ki html tagları temizleyerek sadece string'i elde etmeyi de göreceğiz.

Öncelikle içinde html taglar bulunan bir string verinin içindeki html tagları şöyle temizleyebiliyoruz:

    public string taglari_at(string metin)
    {
        metin = Regex.Replace(metin, @"<(.\n)*?>", string.Empty);
        return metin;
    }

Daha sonra ise özet bilgisini elde etmek için ilk kullancağımız yöntem; string veri tipi ile kullanabildiğimiz substring methodu. Bu method ile verilerin bir kısmını çekebiliriz. Bu methodu fonksiyonel olarak şöyle kullanabiliriz:

    public string icerik(string metin)
    {
        return metin.Substring(0, 150);
        // Verideki ilk 150 karakteri dönderir.
    }

Bunun dışında özet bilgisi elde etmek için; string tipinde ki veriyi belirlediğimiz herhangi bir karakter ile split ederek, split ettiğimiz birkaç bölümü özet olarak kullanabiliriz. Bu yöntemi string verinin bütünlüğünün bozulmaması için . (nokta) karakteri veya kendi belirlediğimiz diğer karakterleri kullanabiliriz.

Ancak bu yöntemde split methodu kullanmamız ve verinin html taglar bulundurması sorunlar yaratabilir. Bunun için bunlara dikkat etmeliyiz. Verinin içinde html taglar varsa bu tagları temizlemeliyiz veya split ederken kullanacağımız karakterleri, html tagların arasına uygun şekilde yerleştirmeliyiz. Bu methodu da fonksiyonel olarak şöyle kullanabiliriz:

    public string icerik(string metin)
    {
        string[] dizi = metin.Split('.');
        return dizi[0]; //Verideki ilk cümleyi dönderir.
    }

Görüldüğü gibi veritabanından gelen değerlerimizi fonksiyonlarımıza parametre olarak sokuyoruz ve bu değerin belirli kısmını methodumuz ile string olarak geri dönderiyoruz. Böylece verilerin özet bilgisini elde etmiş oluyoruz.

İyi Çalışmalar!
Mehmet Duran 17 Ekim Cuma 2008 17 26094 3,7
Bookmark and Share
Bu Yazıyı Değerlendirin.
Konuyla İlgili Olabilecek Diğer Yazılar Yoğunluk, Yaşanan Problemler Asp.net MVC Areas (Tek Proje Kullanarak) Asp.net ile Dinamik Sitemap Hazırlama Asp.net'te Jquery ve Ajax ile Veritabanından Veri Alma C Sharp'ta Split Metodu Kullanımı
Yorumlar
Yorum Yaz
RSS Yorum Takibi
ahmet dogru 23 Aralık Salı 2008 17:19 #1
selam mehmet. <%#taglari_at(Eval("sutun"))%> seklinde kullandim ama sanirim yine html taglarini suzmedi yani aldigim karakter sayilari icinde html taglarida var. bu konuda biraz daha anlatim yapabilirmisin
Mehmet Duran 23 Aralık Salı 2008 19:30 #2
Bu yöntemi kendi sitemde de kullanıyorum. Çalışmama olamaz diye düşünüyorum. Acaba metotta falan bir sorun olabilir mi?
Ahmet Dogru 24 Aralık Çarşamba 2008 01:55 #3
sorun su. html veriyi veritabanımdan az once dedigim gibi cekiyorum ve dedigin metodla html taglarını temizliyorum. ilk 150 karakteri almam gerekirken 30 karakter civarı cekiliyo veri. acaba diyorum yazıdaki 4. yada 5. cümle sonundaki nokta işaretinden nasıl split yapabiliriz? ilk beş cümle yeterli olur sanırım.
Ahmet Dogru 24 Aralık Çarşamba 2008 02:00 #4
yada split ile parcalayıp ilk 5 dizi elemanlarını yazdırabilirmiyiz. kişisel blog yazıyorum biraz eksiklerim var. birde su ajax kullanmadan c# ile sayfalama olayını anlatabilirmisin. 1234...9 10 11 . baya güzel yapmışsın.
Mehmet Duran 24 Aralık Çarşamba 2008 11:05 #5
İlk sorunda az karakterin gelmesi substring metodunu yanlış yerde kullanmandan kaynaklanıyordur.
return metin.substring(0,150); şeklinde olmalı.
Bunun dışında html tagları atmadan noktaya göre split edip istediğin kadar cümleyi gösterebilirsin. Ancak burada html taglara dikkat etmen gerekir.
Mehmet Duran 24 Aralık Çarşamba 2008 11:07 #6
Sayfalama işlemini ise buradaki (mysql ile) ve buradaki (ms sql ile) yazımda anlatmıştım.
deniz 13 Ekim Salı 2009 00:20 #7
Merhaba.Peki ama biz bunu dinamik olarak nasıl yapacağız.Yani bir GridView ya da ListView içerisinde bir textbox olduğunu düşünelim buna tüm belirli bir veriyi tam olarak yüklesek bile kodun içerisinde(Page_Load gibi bir yerde..) TextBox1 gibi bir id değerine ulaşamıyorum ve buna bağlı olarak da substring yapamıyorum.Yani dinamik olarak siz nasıl yaptınız?
Mehmet Duran 13 Ekim Salı 2009 00:28 #8
Data kontrol (gridview, datalist, repeater,vb.) içinde direk olarak yazmış olduğum bu metotlardan kullanacak olduğumu çağırıyorum ve parametre olarak veritabanından gelen değeri gönderiyorum. Sonuçta metot veritabanından alınan verinin bir kısmını gönderiyor. Bu sonucu da data kontrol içinde textbox'a, herhangi bir html tag arasına veya direk olarak response.write ile ekrana yazdırıyorum.
deniz 13 Ekim Salı 2009 00:41 #9
İşin mantığını tam olarak anladım.Ama uygulamasını nasıl yapacağımı anlayamadım.Yani gridview dan nasıl metod çağrabilirim?ve o metini substring yaptıktan sonra gridview içindeki textboxa nasıl yazdırabilirm?Küçük bir kod bile işimi görebilir:)
Mehmet Duran 13 Ekim Salı 2009 11:50 #10
Burada yaptığım örnekte repeater ve yazdığım metodu kullandım. Bu örneği incelersen anlayacağını düşünüyorum.
deniz 13 Ekim Salı 2009 18:32 #11
Merhaba.Verdiğin linkte yazmış olduğun kodu kendi kodlarıma göre uyarlayınca iş çözüldü. Çok teşekkürler..
Mahsun 05 Mart Cuma 2010 14:51 #12
Merhaba Mehmet bey; Ben bu kodları çalıştıramadım. Bir örnek yazarsan sevinirim.
Mehmet Duran 05 Mart Cuma 2010 22:11 #13
Örnek için vaktim yok. Sorun yaşadığın kodları veya örneği aktarabilirsen onun üzerinden yardımcı olmaya çalışırım.
Ali 11 Eylül Cumartesi 2010 16:57 #14
Bakmanızı istedim :) http://www.kodaman.org/yazi/c-ta-string-teki-html
Mehmet Duran 13 Eylül Pazartesi 2010 10:23 #15
@Ali, linkteki kod ile benim paylaştığım kod aynı sayılır. Sanırım anonim bir kod bloğu. :D
Erkan Yılmaz 18 Eylül Cumartesi 2010 23:42 #16
Kod için teşekürler istediğim verileri web sitesinden çektim fakat şöye bir sorun çıktı. Html taglarını temizledikten sonra geriye kalan metinde örnedğin .com uzantılı domanin adresini nasıl geçebilirim. Örnek liste : "aaaa.com 2258 bbabab.com 8858 ccc.com 8852" domainleri uzunlukları sabit olmadından nasıl bir string işlemi yapmam gererkiyor. Teşekürler.
Mehmet Duran 20 Eylül Pazartesi 2010 09:53 #17
Bunun için birçok kontrol ve birçok yöntem kullanman gerekebilir. En basit olarak regular expression ile string içinde belli düzendeki değerleri alabilirsin ama tüm domain isimleri aynı tarzda yazılmış olmayabilir. Yani birisi bitişik birisi ayrı yazılmış ise burada farklı kontrolleri devreye sokman gerekebilir.
İsim :
Site :
Yorum :

Buradan bu yazıya ait yorumları RSS olarak takip edebilirsiniz.

Bu servis ile yazılara eklenen yorumları RSS ile takip ederek konu ile ilgili başkaları tarafından yapılan yorumları veya konuyla ilgili sorduğunuz sorulara verilen cevapları görebilirsiniz.
Gençken bilgi ağacını dikmesek, yaşlandığımız zaman gölgesine sığınacak bir yerimiz olmayacaktır.
Bölümler
Yazılar
Arşiv
Arama
Linkler
Site İçi Arama
Son Zamanlarda Ne Yapıyorum ?
İstatistikler - Araçlar - Reklam
İstatistikler
Sayaç
Mehmet Duran | mehmetduran.com | Copyright © 2009