İbrahim BAYIR ibrahimbayir.com.tr | ASP.Net

Linq ile Sql Cümlesi Çalıştırma

31. Ekim 2010

Ouml;ncelikle merhabalar bu yazımızda Linq ile sql cümlesinin nasıl çalıştırılabileceğini ve buradan dönen değerin nasıl alınabileceğini inceliyor olacağız. Şu anda belkide neden sql cümlesi çalıştırmak için Linq'yu kullanayım diye düşünebilirsiniz. Fakat eğer ki projenize Linq ile başlamışsanız veya zaten Linq kullanıyorsunuz yönteminizi değiştirmeden böylece istediğiniz sql cümlesinide çalıştırabilirsiniz.

Sql cümlesinin nasıl çalıştırıldığına değinmek gerekirse aslında yöntemi çok basit. Bir adet stored procedure oluşturacağız ve bu oluşturduğumuz stored procedure'u linq projemize ekleyeceğiz. Bu stored procedure'mize yalnızca bir adet parametre gönderilebilir olacak ve gönderdiğimiz parametrede sql cümlemizin ta kendisi oalcak. Böylece gönderdiğimiz sql cümlemiz stored procedure içerisinde çalıştırılıp çıkıtısı bize gönderilecek.

Lafı fazla uzatmadan hemen stored proceduremuzu yazalım. Sql serverimizi açıyoruz ve yeni bir query yazıyoruz.

CREATE PROCEDURE spKomutCalistir
@SqlKomut NVARCHAR(4000)
AS
BEGIN
EXEC (@SqlKomut)
END

Yazdığımız bu basit stored procedure'de gördüğünüz üzere sadece gelen parametreyi çalıştırıyoruz. Daha sonra bu yazdığımız ve çalıştırdığımız procedure'ü linq dosyamıza ekliyoruz.

Ben Visual Studio'yu açarak bir Asp.Net Web Application oluşturuyorum. Daha sonra projeye sağ tıklayarak Add-New Item diyerek

Linq ile Sql Cümlesi

 Linq To Sql seçilerek projeye eklenir.

Linq ile Sql Cümlesi

Projeye ekledikten sonra sıra geldi yazdığımız stored procedure 'yi Linq içerisinde eklemeye. Bunun için yanda Server Explorer penceresinen yazdığımız stored procedure seçilerek Linq to Sql içerisine sürüklenip bırakılır.

Linq ile Sql Cümlesi

Bu işlemide yaptıkdan sonra şimdi verilerimizi çekeceğimiz bir tablo yapıyoruz. Ben sadece 3 alanı olan bir tablo yaptım aşağıdaki gibi.

Linq ile Sql Cümlesi

Tablomuzada örnek bazı veriler girdikten sorna artık sql cümlemizi yazabiliriz. Tabiki sql cümlemizi yazmadan önce gelen verilerimizi tutacak bir sınıf yazıyoruz. Bu sınıfı şuan için linq to sql dosyamızın designer.cs dosyası içerisine yazabiliriz.

Linq ile Sql Cümlesi

Şimdi sıra geldi linq to sql dosyamızın içerisine eklemiş olduğumuz KomutCalistir stored procedure'ne geri dönüş tipini bildirmeye. Tabiki geri dönüş tipi olarakda yazdığımız insanlar sınıfını vereceğiz. Komutcalistir methodumuzun son hali aşağıdakine benzeyecek.

Linq ile Sql Cümlesi

Gördüğünüz üzere burda geri dönüş tipini ISingleResult arayüzüne dönüştürdük. Bunun nedeni ise göndereceğimiz sorguların yalnızca 1 dönüş tipinin olmasından kaynaklanıyor. Yani iki farklı select sorgusunu barındıramaz yazdığımız sql cümlesi. Artık sorgumuzu yazıp bir gridView'e verilerimi aktarabiliriz. Sayfanın load olayına hemen kodlarımızı yazıyoruz.

Linq ile Sql Cümlesi

Geriye F5 e basarak projemizi çalıştırıp görmek kalıyor.

Linq ile Sql Cümlesi

Burada bahsetmek istediğim birkaç şey var. Öncelikle linq to sql otomatik olarak her yeni bir Table yada Stored Procedure eklendiğinde tüm içeriğini değiştirmekte ve dolayısıyla eğer tutucu sınıfınızı (bizim yazdığımızda insanlar) linq to sql içerisine yazarsanız her yeni birşeyler eklediğinizde sizin yazdıklarınız gidecektir. Bunun için ayrı bir dosyada sınıfınızı yazmak daha kullanışlı olacaktır.

Bu yazımızda kısaca linq to sql içerisinden nasıl sql cümlelerini nasıl çalıştırabileceğimizi incelemeye çalıştık. Umarım faydalı olmuştur.
Bir sonraki makalede görüşmek üzere. Proje dosyasını buradan indirebilirisiniz.

ibrahim BAYIR

iletisim@ibrahimbayir.com.tr

ASP.Net, CSharp , , , ,

Asp.Net QueryString Ekleme ve Silme İşlemleri

23. Ekim 2010

Merhabalar bu makalemizde Asp.Net'de QueryString işlemlerini nasıl yapabileceğimizi incelemeye çalışacağız. Aslına bakarsanır bildiğimiz gibi QueryString işlemi çok basittir. Örneğin Response.Redirect("~/adres.aspx?ID="+degisken) gibi bir komutla yapılabilir. Fakat eğer isteğimiz adres satırında var olan bir QueryString'e karışmadan yanına yeni bir QueryString ekleme veya silme işlemi ise ne yapacağız?

Öncelikle Asp.Net'de Page.Request.QueryString.Add isminde bir method bulunmakda fakat bu method salt okunur olduğunundan bu şekilde bir ekleme yapmamız yada Request.QueryString.Remove diyerek onu silmemiz mümkün olmamaktadır.

Bundan dolayı bugün biz bu işlemi nasıl yapabiliriz bunu inceliyor olacağız. Öncelikle yeni bir Asp.Net Web Application oluşturuyoruz.

Artık QueryString ekleme methodumuzu yazabiliriz.

Burada sizinde anlayacağınız üzere aslında yaptığımız işlem gayet basit. Var olan tüm QueryStringlerimizi bir değişkene aktarıyoruz ve daha sonrada bu değişkene bizim yeni eklemek istediğimiz QueryStringide ekleyerek geriye bu yeni değişkeni döndürüyoruz.

Şimdi ise QueryStringi silme methodumuzu yazalım.


Burada yaptığımız işleme gelince. Silmek istediğimiz dışındaki tüm QueryStringleri alıyoruz ve yeni bir değişkene aktarıyoruz böylece elde ettiğimiz yeni değişkenin içinde silmek istediğimiz olmuyor ve bu yeni değerimizide geriye döndürüyoruz.

Methodlarımızı denemek için sayfamıza iki tane Button koyuyoruz ve hemen Click olaylarını yazıyoruz. QueryString Ekle butonumuz

ve QueryString Sil butonumuz.

Evet artık methodlarımız hazır ve kullanılabilir.  Aklınıza belki şöyle bir soru gelmiş olabilir acaba ben bunu nerde kullanırım? Bir örnek vermek gerekirse sayfanızda arama yaptırdığınızı ve gelen sonuçlarıda belli kriterlere göre süzdüğünüzü düşünelim. Süzme işlemi için kullanıcı her bir kriter seçtiğinde sizinde bir QueryStringi yollamanız gerekir işte böyle bir durumda kullanılabilir. Umarım faydalı olmuştur.

Örnek uygulamayı burdan indirebilirsiniz.

İbrahim BAYIR
iletisim@ibrahimbayir.com.tr

ASP.Net, CSharp , , , ,

ASP.Net de <machineKey> Hatası

26. Temmuz 2010

Merhaba arkadaşlar

Başıma gelen bir hatadan bahsetmek istiyorum.

Hata: MAC görüntü durumu doğrulaması başarısız oldu. Bu uygulamayı bir Web grubu veya kümesi barındırıyorsa, <machineKey> yapılandırmasının aynı validationKey ve doğrulama algoritmasını belirttiğinden emin olun.

Kümede AutoGenerate kullanılamıyor. Geçerli Web isteğinin yürütülmesi sırasında işlenmemiş bir özel durum oluştu. Hata hakkında ve kodda bulunduğu yer konusunda daha fazla bilgi için yığın izlemeye göz atın.

Bir projeye devam ederken yukarıdaki hatayı almaya başladım ve bunu çözmek için 1-2 saat uğraştım sonunda küçük bir kodla çözüldüğünü gördüm bu problemi sizde yaşıyorsanız tekyapmanız gereken web.config dosyasına girip system.web in altındaki pages kısmını alttaki gibi düzeltmeniz gerekmektedir. 

<pages viewStateMac="false">

ASP.Net , ,

ASP.NET Flash Component

12. Temmuz 2010

ASP.Net için Flash Kontrol Yazalım (Flash Component for ASP.NET)

Merhaba arkadaşlar

Bu ilk yazımda sizlere ASP.Net de CSharp ile basit bir Flash Component’i yazmayı göstereceğim. Aslına bakarsanız bu bileşeni bulmak için internette çok uğraştım fakat bedavaya bulamadım. Sadece birkaç tane sitede var onlarda para karşılığında satmaktalar. Bundan dolayı bende herkesin işine yarayabileceğini düşünerek bu konuda yazmak istedim.

Öncelikle yeni bir CSharp – Class Library projesi oluşturuyoruz.

Ben Class1 in ismini FlashComponent olarak değiştirdim.

Ben component’imize yalnızca 3 tane özellik vermek istiyorum tabiki siz yazarken bunu istediğiniz gibi arttırabilirsiniz. Bu özellikler DOSYAYOLU,WIDTH ve HEIGHT değerleri olacak. Böylelikle Flash Component’imizin boyunu,yüksekliğini ve dosya yolunu istediğimiz gibi değiştirebileceğiz. Daha sonra projemize System.Web referansını ekliyoruz.



 Property’leri eklemeden önce bizim yazdığımız bu sınıfın System.Web.UI.WebControls.WebControl Sınıfından miras olarak türetilmesi bizim işimizi kolaylaştıracaktır. Bunuda eklemeyi unutmuyoruz.

namespace FlashComponent
{
    public class FlashComponent:System.Web.UI.WebControls.WebControl
    {
 
        string dosyayolu1 { get; set; }
 
        string dosyayolu;
 
        public string Dosyayolu
        {
            get { return dosyayolu; }
            set { dosyayolu = value; }
        }
 
        int WIDTH;
 
        public int WIDTH1
        {
            get { return WIDTH; }
            set { WIDTH = value; }
        }
 
        int HEIGHT;
 
        public int HEIGHT1
        {
            get { return HEIGHT; }
            set { HEIGHT = value; }
       }
    }
}

 Şimdi ise Constructor’ımıza varsayılan olan bu değerlerin ne olması gerektiğini yazıyoruz.

public FlashComponent()
        {
            this.dosyayolu = "Dosya Yolu";
            this.WIDTH = 100;
            this.HEIGHT = 100;
           
        }

Şimdi ise isin en önemli kısmına geldik. Yazdığımız component’in render edilme sırasında yapılması istediklerimizi buraya yazacağız. Yani derleme anında ASP.Net tarafından HTML’ye dönüştürülecek kısım diyebiliriz.

 protected override void Render(System.Web.UI.HtmlTextWriter writer)

        {
            writer.Write("<div>");
            string swfobje=" <object width=\""+this .WIDTH .ToString () +"\" height=\"" + this .HEIGHT .ToString () + "\">";
            swfobje +=" <param name=\"movie\" value=\""+this .dosyayolu + "\">";
            swfobje +=" <embed src=\""+ this .dosyayolu +"\" width=\""+this .WIDTH .ToString () +"\" height=\""+this .HEIGHT .ToString () +"\">";
            swfobje +=" </embed></object>";
            writer.Write(swfobje);
            writer.Write("</div>");
           
        }

Böylelikle component’imizi bitirdik diyebiliriz. Şimdi sıra geldi bunu çalıştırıp görmeye. Solution’umuza sağ tıklayıp Add-New Project diyoruz ve yeni bir ASP.Net Web Application ekliyoruz. 

Şimdi bu yeni eklediğimiz projeye sağ tıklayarak Set Up Startup Project diyoruz böylece ilk açılış projemiz olarak ayarlamış oluyoruz. Daha sonra Solution’a sağ tıklayıp Build diyoruz böylece tüm Solution derlenmiş oluyor. Böyle yaptığımız zaman yandaki ToolBox kısmında bizim Component’imizi görebiliriz.

Hemen buradan oluşturduğumuz ASPX sayfamıza ekliyoruz. Tabiki yazdığımız özelliklerinide Properties penceresinde görebiliyoruz.

Böylece Componentimizi yazmış oluyoruz. Başka projelerde kullanmak istediğimiz zaman ise ToolBox’a sağ tıklayıp Choose Item diyerek oluşturduğumuz DLL dosyasını yol göstererek buraya ekleyebiliriz.

Çalışan hali yukarıdaki gibidir. Projeyi burdanindirebilirsiniz.

Faydalı olması dileğiyle.

İbrahim Bayır

 

 

ASP.Net , , ,