16 Ocak 2013 Çarşamba

Progressbar Kontrolü - İşlem esnasında progressbar gösterimi

bazı projelerimizde ki özellikle winforms tabanlı projelerde zaman alıcı işlemleri yaparken kullanıcının kasılıp kalan bir form görmesi yerine kişiye programın yaptığı işlem hakkında bilgi veren işlemlemler yapmak isteyebiliriz.bu noktada progressbar kontrolü bizlere kolaylık sağlamaktadır. progressbar kontrolünü backgroundworker nesnesi ile beraber kullanabilir,bu sayede profesyonel projelerdeki bilgi ekranlarını yaratabiliriz.

aşağıda ufak bir örnek paylaştım konunun daha iyi anlaşılabilmesi için;

formumuza bir adet progressBar, 1 adet buton ve 1 adet listbox yerleştirelim.


 ////işlemi başlattığımız butonumuz.reportprogress özelliği true olmazsa işlem bilgisi alamayız.
private void button1_Click(object sender, EventArgs e)

        {

            backgroundWorker1.RunWorkerAsync();

      

            backgroundWorker1.WorkerReportsProgress = true;

        }

/*işin yapılacağı kısım olan BackgroundWorker nesnemizin DoWork Event'ı.yapılmasını istediğimiz işlemi bu alana yazıyoruz*/
        private void backgroundWorker1_DoWork(object sender, DoWorkEventArgs e)
        {
            for (int i = 0; i <= 100; i++)
            {
                listBox1.Items.Add("Üretilen Sayı" + " " + e.Result);
               backgroundWorker1.ReportProgress(i,e.Result);
              System.Threading.Thread.Sleep(new Random().Next(10) * 100);

              
            }
        }
 ///// backgroundworker nesnesi üzerinde herhangi bir değişiklik olduğunda(işlem yapıldığında)
      private void backgroundWorker1_ProgressChanged(object sender, ProgressChangedEventArgs e)
        {
            progressBar1.Value = e.ProgressPercentage;
          
        }
 ////işlem bitiminde yapmak istediğiniz işlemler için kullanabilirsiniz.
        private void backgroundWorker1_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e)
        {
            MessageBox.Show("İşlem Tamamlandı");
        }


//// bu attribute false değerini almadığı takdirde aynı thread üzerinden yaratılan nesnelere erişmek istediğinizde cross thread exception alırsınız.
        private void Form1_Load(object sender, EventArgs e)
        {
            CheckForIllegalCrossThreadCalls = false;
        }




14 Ocak 2013 Pazartesi

ASPxCaptcha ile Captcha Oluşturun

ASPxCaptcha kontrolü devexpress in bizler için sağladığı en güzel kontrollerden biri bana sorarsanız.eskiden üye sayfalarında doğrulama kodu olarak üretilen algoritmalar artık tarihe karıştı.bu kontrol ile istediğiniz yerde doğrulama yapabilirsiniz.

yukarıda gördüğünüz gibi sayfanıza 1 adet ASPxCaptcha ekleyin.

bazı özellikleri de şunlar :


CodeLenght : kod uzunluğunu buradan değiştirebilirsiniz.


ASPxCaptcha1.Code   kodu ile captcha da gösterilen kodu programsal olarak  alabilirsiniz.

IsValid : en çok kullanılan attribute olaraktan textbox'a girilen değerin üretilen değer ile doğru olup olmadığını döndürür size.bir çeşit validation da diyebiliriz.

ASP.NET Sayfalar arası veri taşıma işlemleri

merhaba;

bu yazımda sizlere asp.net üzerinde sayfalar arasında veri taşıma işlemlerinden bahsetmek istiyorum.hepimizin bildiği gibi uygulamarımızda sayfalarımız arası haberleşmeler büyük önem arzetmektedir.bazı sayfalarda bazı işlemlerin yerine getirilebilmesi için diğer sayfalardan gelecek verilere ihtiyaç duyulabilir(GET).ASP.NET üzerinde veri taşıma işlemleri aşağıdaki şekillerde yapılabilir.

1-)QueryString : en yaygın ve basit kullanıma sahip olanıdır.istenilen verileri sayfayı post ettiğiniz zaman yönlendirildiğiniz sayfaya URL üzerinden taşır.

Kullanımı :

a sayfasından b sayfasına isim taşıyalım.

a sayfasında linkinizi şu şekilde değiştirirseniz:
Response.Redirect("gidileceksayfa.aspx?isim=can");

Tarayıcınızın URL kısmına baktığınızda:

www.siteadi.com/b.aspx?isim=can
olarak görürsünüz.a sayfasından veri aktarımı tamamlanmıştır.bundan sonraki adım b sayfasından gelen veriyi almaktan ibarettir.o da şu şekilde yapılır:

b sayfasında "isim" adında bir değişken tanımlayalım ve gelen veriyi bu değişkene aktaralım:


string isim=Request.QueryString["isim"];

querystring hakkında çok fazla söylenecek birşey yok aslında kullanımı bu kadar basit.


2-)Session : Session aslında "Oturum" demek.kullanıcının oturumu boyunca tutulmak istenen şahsi verilerinin saklandığı kavramlara session adı veriyoruz.genellikle üye işlemleri içeren sitelerde kullanılan sessionlar güvenlik ve yönetimi açısındanda tercih edilmektedir.

en basit session oluşturma örneği:

Session["session_adi"]=session_degeri
;   şeklindedir.

bir session tanımlar,istediğiniz yerde içeriğini düzenler istediğiniz yerde de çağırarak kullanabilirsiniz kısacası.Sessionların bazı özellikleri ;

 Session.Timeout = dakika bazından session'ın canlı tutulmasını belirtir.belirttiğiniz dakika dolduğunda session sistem tarafından bellekten silinir..Default değeri "20" dir.

Session.RemoveAt : Session koleksiyonunuzda verdiğiniz id deki session'ı bellekten silmek için kullanılır.

Session.Clear()
: Sessionlar İçerisindeki tüm verilerinizi bellekten siler.



3-)Server Transfer Kullanarak Veri Taşıma : bu yöntemle yapılan veri transferinde URL niz aynı kalır.yani querystring örneğindeki gibi URL nizde değerler gözükmez ve POST ettiğiniz sayfa aynı şekilde tarayıcınızda gözükücektir.

Server.Transfer("2incisayfa.aspx");
  şeklinde kullanılır.bu komut işlendiğinde tarayıcınızda halen 1incisayfa.aspx yazılıdır.










ConnectionString'i Web.config dosyasında saklamak

Merhaba;

veritabanı bağlantılı birçok uygulamada(özellikle büyük ölçekli uygulamalar) bağlantı cümlesini tek biryerde saklamak hem zamandan hemde yönetim konusunda büyük kolaylıklar sağlamaktadır.bu işin ASP.NET içerisindeki çözümlerinden birtanesi ConnectionString'in web.config dosyasında saklanmasıdır.bu şekilde projenizin istediğiniz yerinden bu string'i çağırabilir ve gerekli işlemleri kolaylıkla yapabilirsiniz.yine değiştirme esnasında'da sadece bu kısmı değiştirerek projenizdeki tüm ConnectionString'leri değiştirmiş olursunuz.Oldukça pratik yani..
 

connectionString'i web.config dosyasında şu şekilde tanımlayabilirsiniz.



taglarının altına



bunu çağırmak içinse;

öncelikle System.Configuration kütüphanesini projenize dahil etmeniz gerekiyor.

using System.Configuration;

public SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrings["dbConnection"].ConnectionString);

şeklinde tanımlama yapabilmeniz mümkün.

Kolay gelsin.

DXPerience v12.1 İndir

Developer Express ürünü windows tabanlı geliştirmiş olduğunuz projeler için kullanabileceğiniz güzel bir component barındırır.aşağıda vereceğim linki kullanarak Developer Express'in güncel sürümlerinden v12.1 i indirerek kurabilir,projelerinizde kullanmaya başlayabilirsiniz.ayrıca blogumu da takip ederek developer express component'i ile ilgili yeni bilgiler öğrenebilir,paylaşımlar yapabilir ve takıldığınız yerlerde yardım alabilirsiniz.

Developer Express v12.1 indir

ASP.NET Tarafından SQL Server Stored Procedure Parametresine ulaşmak

Merhaba;

sql tarafında oluşturmuş olduğunuz bir prosedürünüz varsa ve bu prosedürün içerisindeki değerlere asp.net tarafından ulaşmak istiyorsanız aşağıdaki adımları izlemeniz yeterli olacaktır.

sql'de prosedür parametrelerinden değer alabilmek için öncelikle o parametrelerin(yani değişkenlerin) OUTPUT(Türkçe anlamı "çıkış" tır) olarak tanımlanmış olması gerekir ki bu işlem şu şekilde olur;

@değişken_adı tipi(size değeri) output

@sonuc nvarchar(50) output


sql prosedürleri standartta geriye yanlızca int değer döndürebilirler bu nedenle return ifadesi ile int olmayan bi değeri elde edebilmeniz mümkün değildir.Bunu aşmanın yoluda değerini almak istediğiniz parametrenizi output olarak tanımlamanız gerekmektedir.İsterseniz gelin şimdi beraber ufak bir örnek yapalım ve 2 stringi birleştiren ve bize sonucu döndüren bir stored procedure yazalım.

SQL kodumuz;

USE [firma_rehberi]
CREATE PROCEDURE [dbo].[sp_isimdondur](@str1 nvarchar(50),@str2 nvarchar(50),@sonuc nvarchar(50) output)
AS
set @sonuc=@str1+@str2

 ASP.NET Tarafında sp içerisinde tanımladığımız sonuç değişkeninin içeriğine ;

 SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrings["dbConnection"].ConnectionString);
    SqlCommand cmd = new SqlCommand();

con.Open();
        cmd.Connection = con;
cmd.CommandType = CommandType.StoredProcedure;
            cmd.CommandText = "sp_StringDondur";

cmd.Parameters.Add("@kelime1", SqlDbType.NVarChar,50);
            cmd.Parameters["@kelime1"].Value = 'an';

cmd.Parameters.Add("@kelime2", SqlDbType.NVarChar,50);
            cmd.Parameters["@kelime2"].Value = 'kara';

cmd.Parameters.Add("@sonuc ",SqlDbType.NVarChar,50);
            cmd.Parameters["@sonuc "].Direction = ParameterDirection.Output;
 cmd.ExecuteNonQuery();

Response.Write(cmd.Parameters["@sonuc "].Value.ToString());

işlem bu kadar arkadaşlar. cmd.Parameters["@sonuc "].Value komutu bizlere prosedürümüz içerisindeki sonuc değişkeninin değerini döndürür.