Ana içeriğe atla

Asp.Net Web Servisleri 3-(SOAP) & Web Servis yanıtlarını GridView içinde nasıl kullanırız?

Bu yazıda Asp.Net ile suda erimeyen bir sabun yapacağız...

Dersem ne olur ?

İnandırıcı olmaz değilmi...
Pekala ozaman şöyle bir şey yapalım.Bir önceki yazıda oluşturduğumuz, Asp.Net ve Ms Access kullandığımız 16 bin adetli market ürünümüzün bu Web Servisini yine bir Asp.Net Web uygulasında kullanarak, servis içinde bulunan bir değeri sorgulayalım ve yeni oluşturduğumuz GridView içinde bu sonucun tümünü alalım.Evet bu Asp.Net sabunundan daha kullanışlı olacağa benziyor.Buyrun devam edelim...


Bir önceki Asp.Net Web Servisleri ve Veritabanı ilişkileri hakkında yazdığım yazıyı okumanız bu basit örneği daha iyi anlamanıza yardımcı olabilir.Zira bu yazıda daha önceden hazırlamış olduğum bir web servisi projede web referansı olarak kullanacak ve söz konusu database içindeki verileri xml'den GridView içine alacağım.Bu hatırlatmayıda bitirdiğimize göre yine küçük ve açıklayıcı bir resim eşliğinde bakalım neler yapacağımıza.

Local(yerel) çalışan Asp.Net web uygulamamda bir web servisi XML ile sorgulamıştım, yandaki  XML yanıtında tıpkı Ms Access veritabanımın içinde bulunan  field yapısının veri  tipleri ile yanıt aldığımı sanırım görebiliyorsunuz.Buna göre veritabanındada Xml yanıtındada beş farklı veri bir table içinde vardır.Burada küçük fakat önemli bir bilgi daha vermeliyim.Çoğu zaman kendi uygulamamız dışında kullanmayı isteyeceğimiz web servislerinde sorgulama esnasında doğrulama kullanılırki bu tip bir işlem Boolean veri tipleri gibi true / false değeri gerektirir.Bu ayrıntıyı bu türden başka web servislerini kullanacağımız örneklerde detaylıca okuyabileceksiniz.Şimdilik bu örnek web servisimiz üzerinden gideceğizimizi söylemeliyim.

1-Proje hazır yapacaklarımızda belli artık çözüme yeni bir "Add Web Reference" eklemenin zamanı geldi.

İster local bir web servis olsun, ister başka bir kaynağa ait web servis kullanacak olalım, Visual Studio 2008 ve 2010 sürümlerinde Web Reference eklemenin basit yöntemi bu şekildedir.Bu işlem sonrasında aşağıdaki resimdeki türden bir URL Web "asmx" uzantısı olan web servis bilgisini girmemiz istenir.
Yukarıdaki URL bilgisinden anlaşılacağı üzre bu çalışma dizininde TabloAdi adında bir web servisi var ve bunu localhost olarak adlandırarak referansı web uygulama dizinime ekliyorum.Elbette bu başka bir kaynak için değişik bir adres url sine sahip olacaktır.Yine burada küçük fakat önemli bir bilgi vermeliyim.Eğer aksini belirtmememiş ve sabit bir http port seçmemişseniz. Visual Studio uygulamalarınızı test ederken farklı http portları üzerinde çalışmalarınızı görüntüler,ayrıca IIS üzerinde olmayan web servisleride bu kapsamdadır.Yani http://localhost:1320/Web-Services-AccessDataset-1/Items.asmx adresindeki web servisiniz kalıcı değil sadece test amaçlı yaptığımız anlamına gelir.

2.Items.aspx adında yeni bir web form edinmenin zamanı.
Add Reference ile işlemin bize kazandırğı web servis içindeki sınıfların uygulama içinde dilediğimiz yerde kolaylıkla ulaşmamızı sağlamasıdır.Artık bu referansı bir yerlerde kullanalım.Ben Items.aspx adında yeni bir web form oluşturarak
yukarıdaki gibi bir görünümü tercih ettim.Sorgulama için bir TextBox ve sorgulama sonuçları için ise GridView bu kadarı şuan için yeterli.

3.Items.aspx.cs code için yapacaklarımızda var elbette, çünki bir datasete ve web servisinin bazı bilgilerini burada tanımlayabiliyoruz.Bu kodlarda şu şekilde
using System;
using System.Configuration;
using System.Data; //Eklenmeli
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;
using System.Text;
 
public partial class ItemsList : System.Web.UI.Page
{
    protected void Button1_Click(object sender, EventArgs e)
    {
        localhost.Items service = new localhost.Items();
        DataSet ds = service.TabloAdi(TextBox1.Text);
        ItemsGridView.DataSource = ds;
        ItemsGridView.DataMember = ds.Tables[0].TableName;
        ItemsGridView.DataBind();
    }
}
Button1 event içinde olduğunu görebiliyorsunuz sanırım, localhost ve DataSet adındaki TabloAdi unsurlarına dikkat etmeliyiz.Çünkü localhost.Items Service,Web referansı eklerken verilmiş referans ismini açıklar,DataSet service.TabloAdi ise bir önceki blog yazısında oluşturduğumuz [WebMethod] public DataSet TabloAdi (string ad) Web Servis Methodunun adıdır.TextBox1 ve ItemsGridView ise yine Web Form içindeki kontrollerimizi işaret ederler.Evet şu durumda örnek web servis ve referans işimiz bitti gibi görünüyor.

Şimdi sorgulama yaparak tbl_StokList tablosu içerisindeki 16 bin kaydı Grid View içinde görmemiz lazım...Fakat tabiki ben bu kadar sutün verisinin Browser çıktısını buraya eklemeyiceğim.Çünkü bu oldukça büyük bir görüntü demek.Ama sonuç olarak ...


Sonuç başarılı... !

      Bu Yazının Sponsorları













Yorumlar

Bu blogdaki popüler yayınlar

Firebird SQL Table oluşturma ve SQL komutları

2 nci  Firebird SQL veritabanı blogunda bu kez mevcut Firebird veritabanına ISQL ile bağlanmayı veritabanı nesnelerini oluşturmayı (create table), Kayıt eklemeyi (ınsert) ve kayıtları izlemeyi (show) ile önemli SQL komutlarını anlatmaya çalışacağım...

Firebird Veritabanı Nedir ? Nasıl Kullanılır

Firebird ücretsiz veritabanı kullanmaya ne dersiniz.Üstelik hiç bir süre ve veri sınırı olmadan kulağa hoş geliyor değilmi.Bu Blogta Borland açık kaynak interbase 6 sürümünden sonra ortaya çıkmış ve gelişimini sürekli sürdürmüş Firebird veritabanına bir göz atıcaz. İnternet üzerinde Firebird ile kaynağa çok sık rastlamazsınız artık bu blogtan Firebird ile ilgili bilgileri takip edebilirsiniz...

Asp.Net Access veritabanina resim ve nesne kaydetmek OLE Nesnesi

Ms Access ile ilgili geçmiş yazılarım arasında biraz vakit geçirmişseniz, Ms Access form uygulamaları yada veritabanı olarak kullanmayı sevdiğimi anlamışsınızdır. Birazdan size anlatmaya çalışacağım konu Ms Access veritabanı olarak kullandığımız bir Asp.Net Web projesinde resimleri ve dosyaları paket halinde veritabanının içine gömmek olacak.Neden bilmiyorum bu konuda Türkçe kaynak yok, merak etmeyin bu yazı size iyi gelecek...