3 Haziran 2013 Pazartesi

SqlCommand Nesnesi ile Birden Fazla Sorgu Çalıştırma

Merhaba arkadaşlar. Bugün yine fire vermeden blogumda yazı paylaşıyorum. paylaştıkça da mutlu oluyorum ve hepinize tavsiye etmeden geçemiyorum. Bugun ki konumuza gelecek olursak bugun ki konumuz Tek sqlcommand nesnesi ile birden fazla sorguyu çalıştırmak. Önceleri bende merak ediyordum böyle bişey  var mı diye hatta iki farklı sorgu için iki farklı sqlcommand bile tanımlamıştım. Kodlama kısmına geçecek olursak


SqlCommand cmd = new SqlCommand("select id, MusteriAdi from denemeTable; select MusteriAdi, MusteriSoyadi from Musteriler", cnn);

//İki farklı sorgumuzu aralarına ; işaret koyarak yazıyoruz. burası çok önemli asla unutmamamız gereken bi nokta.

        cnn.Open(); // Baglantımızı açıyoruz

        SqlDataReader dr = cmd.ExecuteReader(); //çalışan sorgudan dönen sonucu dr nesnemize aktarıyoruz

        bool baskasorguvarmi; //sorgu var mı yok mu kontrol etmek için bool türnde değişken tanımlıyoruz

        do
        {
            while (dr.Read())
            {
                ListBox1.Items.Add(dr[0].ToString() + " - " + dr[1].ToString()); // ilk sorgumuzda ki id ve
      MusteriAdi sutunlarını ekliyoruz
            }

            baskasorguvarmi = dr.NextResult();
  //ikinci sorgunun olup olmadığının kontrolünü nextresult() metodu ile yapıyoruz. 2. bi sorgu varsa  true, yoksa false dönecektir ve baskasorguvarmi değişkenin değerine göre tekrar while döngüsüne girerek listbox a veri ekleme işlemini yapacaktır

        }
        while (baskasorguvarmi);

Arkadaşlar yukarıda da görüldüğü gibi iki sorgu arasına  ; koymayı unutmuyoruz ve NextResults() metodu ile  ikinci sorgu var mı yok mu kontrol  ediyoruz. diğer kısımları zaten bildiğinizi varsayıyorum. Sorunlarınıza çözüm olması dileğiyle, hoşçakalın...

Kaynak : http://www.gencayyildiz.com
       

2 Haziran 2013 Pazar

C# String Metotları

Merhaba arkadaşlar. Bugün kü yazımda sıkça kullandığımız bize büyük kolaylıklar sağlayan string metotlarını ele alıcaz. Bende yanlış bilgi vermemek için diğer bloglara bakarak ve kodları yazarak sizlerle paylaşmak istedim.


string metin = "isa bal";

            bool a = metin.Contains("ı"); //metin stringinde ı harfi yok mu kontrol eder. varsa true yoksa false döndürür.

            Console.WriteLine("sonuç : " + a);

            bool b = metin.EndsWith("bal"); //metin stringinin içerisinde bal stringi varmı yok mu kontrol eder. varsa true yoksa false döndürür.

            Console.WriteLine("sonuc : " + b);

            bool c = metin.StartsWith("i"); //metin stringi i harfi ile başlıyomu. başlıyor ise true, başlamıyorsa false döndürür

            Console.WriteLine("sonuc : " + c);

            metin = metin.Insert(7, "ı"); //metin stringine 7. indexten itibaren ı harfini ekler.

            Console.WriteLine("sonuc : " + metin);

           Console.WriteLine("sonuç : " +  metin.Remove(2)); //2. indexten itibaren karakterleri siler. 2. karakterde dahil

           Console.WriteLine("sonuç : " + metin.Remove(1, 1)); //1. indexten itibaren bir karakter siler. yani sadece 1. karakter

            Console.WriteLine("sonuc : " + metin.Replace('i','O'));

            Console.WriteLine("sonuc : " + metin.Substring(3)); // 3. indexten itibaren tüm karakterleri alır

            Console.WriteLine("sonuc : " + metin.Substring(4, 2)); //3. indexten itibaren iki karakter alır

            Console.WriteLine("sonuc : " + metin.ToLower()); //tüm harfleri küçük yapar

            Console.WriteLine("sonuc : " + metin.ToUpper()); //tüm harfleri büyük yapar

            string[] dizim = metin.Split('a'); //metin stringini a harfine göre parçalar ve diziye atar. çıktıdan daha iyi anlayabiliriz.

            for (int i = 0; i < dizim.Length; i++)
            {
                Console.WriteLine(dizim[i]);
            }


            metin.Trim(); //metin değişkeninin başındaki ve sonundaki boşlukları siler

            metin.TrimEnd(); //metin değişkeninin sonundaki boşlukları siler

            metin.TrimStart(); //metin değişkeninin başındaki boşlukları siler.


Sonuç ekran çıktıları şekildeki gibi olacaktır. Faydalı olması dileğiyle iyi günler arkadaşlar...

1 Haziran 2013 Cumartesi

Collection Pager sınıfının kullanımı

Merhaba arkadaşlar. blogumda nerdese 1 yıldır bişi paylaşmıyorum, yeni mezun olmanın verdiği psikoloji ile artık bişilerin ucundan tutmak gerektiğini düşündüm ve deneyim ve bilgilerimi paylaşmaya karar verdim.Bugunkü konumuz Colleciton pager dll i. Bu dll ne işe yarar diye sorarsanız şöyle açıklayayım. Bir web sayfası yaptığımızı düşünün ve sayfada onlarca yüzlerce ürün, kayıt vb gösterilecek ve bunları gösterirkende repeater veya datalist gibi nesneler kullanmak isteyebiliriz. Ancak ne yazık ki bu nesnelerimizin gridview gibi sayfalama özelliği yok. Bu üzücü durumda yardımımıza collection pager dll i yetişiyor. Şahsen ben ilk kullandığımda derin bir oh çekmiştim. Öncelikle internetten collection pager dll download dediğimizde rahatlıkla bulup indirebiliriz. Daha sonra toolbox a sağ tıklayıp choose ıtem dedikten sonra açılan pencereden dll in yolunu belirtirsek collection pager nesnesi toolbox a eklenmiş olacaktır..artık Collection pager ı sayfamıza sürükle bırak yöntemi ile kullanabiliriz.

<%@ Register Assembly="CollectionPager" Namespace="SiteUtils" TagPrefix="cc1" %>
<asp:Repeater ID="Repeater1" runat="server">
    <ItemTemplate>
        <%#Eval("Veri") %>
    </ItemTemplate>
</asp:Repeater>
<cc1:CollectionPager ID="CollectionPager1" PageSize="10" runat="server" BackNextLocation="Split" BackText="Geri" FirstText="İlk" LabelText="Sayfa:" LastText="Son" NextText="İleri" QueryStringKey="Sayfa" ResultsFormat="Sayfa {0}-{1} (of {2})"></cc1:CollectioknPager>

yukarıda gördüğümüz gibi kodda collection pager ın özellikleri de belirtilmiş. artık .cs kısmına gelerek collection pager a sayfalayacağı veri kaynağını gösterelim.

CollectionPager1.DataSource = dt(datatable değişkeni olabilir veya veri dizisi )
    CollectionPager1.BindToControl = Repeater1;
    Repeater1.DataSource = CollectionPager1.DataSourcePaged;

Bu şekilde onlarca verimizi sayfalamış olduk. Gerçekten çok kullanışlı ve işe yarayan bi dll. Sorunlarınıza çözüm getirmesi dileğiyle


26 Haziran 2012 Salı

Veriden Geleceğe 2012 (İş Zekası ve Veri Ambarı Eğitimi)


Sektörün önde gelen isimlerinin eğitmen olarak katıldığı program eğitmenlerin düzenlediği oturumlar ile gerçekleştirlecek.
Katılımcı profilinin bilişim sektörü ile ilgili olan üniversite 3. veya 4 sınıf öğrencileri ile yeni mezun olmuş öğrencilerden oluştuğu eğitim 2 hafta sonu boyunca sabah 09:00 – 12:00 ve 13:00- 16:00 aralarında 3 er saatlik seanslar ile gerçekleştirilecek.
 
 
 
Başvuru formunu doldurup info@datawarehouse.gen.tr adresine gönderen katılımcılar arasından ön değerlendirme sonrası kesin kayıt yaptırmaları gerekmektedir. Kesin kayıt yaptırmayan katılımcıların başvuruları iptal edilecek ve yerine yedek listedeki katılımcılar davet edilecektir. 
 
Eğitim sonrası Katılım belgesi verilecek katılımcılar aynı zamanda iş zekası sektöründe çalışan şirketlere tavsiye edileceklerdir.
 
Eğitim Üsküdar Gençlik Merkezinin ev sahipliğinde gerçekleştirilecektir.
 
Eğitim ana sponsorumuz Philogica ‘ya sonsuz teşekkürlerimizi sunuyoruz.
 
BAŞVURU FORMU : Veriden Geleceğe 2012 Başvuru Formu  –  info@datawarehouse.gen.tr
 
Ayrıntılı bilgi için : www.datawarehouse.gen.tr iletişim maili info@datawarehouse.gen.tr ye mail gönderiniz.
 
Etkinliğin Facebook Grubu :  DatawarehouseTurkiyeBilisimKurslari

Çok güzel bi etkinlik olacağı kesin. İnş. bende katılma şansı bulurum...

8 Haziran 2012 Cuma

Veritabanı Bağlantısında Store Procedure kullanımı


Merhaba arkadaşlar.Programlamanın en gözde konularından birisi  "veritabanı bağlantısını" nın ufak bi örneğini göstereceğim sizlere.Command nesnesinde çoğumuz şimdiye kadar sql cümleciği görmüşüzdür "select *from uyeler" v.b şeklinde.Tabi bu başlangıç sürecinde kullanılan bi yöntem ancak zamanla uzmanlaştıkça store procedure kullanıldığını farketceksiniz ve sizde programlarınızda store procedurlere yer vereceksiniz.Sizlere Store procedure kullanmanın faydasını iki cümle iki izah etmek istiyorum. Store procedurler Sql serverımızda  yazdığımız sql fonksiyonları diyebiliriz. Store procedurların en önemli özelliği yazıldıktan sonra bir kez derlenip sonra istediğimiz zaman çağırabiliyo olmamızdır.Zaten asıl önemi de derlenmiş olmasından geliyo.Çünkü programlarımıza hız kazandırıyo. e zaten hız bizim için en önemli kıstaslardan biri değil miydi? O zaman şimdi kodu inceleyelim ve sağındaki açıklamalarını dikkatlice okuyalım.



using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Data;
using System.Data.SqlClient;

namespace deneme
{
    public partial class insrt : System.Web.UI.Page
    {
        SqlConnection cnn = new SqlConnection("server=localhost; Database=abc; uid=sa; pwd=1"); // DB ile bağlantı kurduk ve gerekli parametreleri girdik
                                                                                               

        protected void Page_Load(object sender, EventArgs e)
        {
        }
            protected void btnekle_Click(object sender, EventArgs e)
        {
            try
            {
                cnn.Open(); // Öncelikle veriyle işlem yapmak için bağlantımızı açıyoruz.
                              //cmd nesnesi oluşturmadan bi sonraki basamaktada açabilirdik. sırası çok mühim değil

                SqlCommand cmd = new SqlCommand("ekle", cnn); // command nesnesini oluşturduk ve ve ekle isimli store procedure müzü sql cümleciğini yazdığımız yere yazdık.
                                                               

                cmd.CommandType = CommandType.StoredProcedure;  // command tipimizi storeprocedure olarak belirttik

             
                cmd.ExecuteNonQuery();   //Sorgumuz geriye sonuç döndürmeyeceğinden cmd nesnemizi executenonquery()  ile çalıştırıyoruz

            }

            catch
            {
                lbluyari.Text = "bağlantıda sorunvar";  // try bloğu çalışmazsa catch bloğu devreye girecek.

      profesyonel programlama hataları gözardı etme ve bunun için gerekli kodlamayı yapar
            }

            finally
            {
                cnn.Close();  // son olarak  bağlantımızı kapatıyoruz. Kesinlikle açık bırakmayalım.
            }
        }
    }
}


Kodumuzda kullandığımız ekle store proceduru :

create procedure ekle
{
@yazaradi nvarchar(50),
@kitapadi nvarchar(50)

}
as
 insert into yazarlar(yazaradi,kitapadi) values(@yazaradi, @kitapadi)

şeklinde olacaktır arkadaşlar. Bir sonraki blogda görüşmek dileğiyle hoşçakalın....

Javascriptle validation örneği

Merhaba arkadaşlar. Uzun bir aradan sonra, yaklaşık 10 gündür bloga yazamadım. İçimde yine yazma hissi oluştu ve buraya kadar geldim... Bu seferki blogumuzda kısa kısa javascript kodlarıyla kullanıcının inputları boş bırakmasını önleyeceğiz. Hani form doldururken 'lütfen * lı alanları boş bırakmayınız'  uyarısını alırız, bizde ona benzer bi uygulama yapıcaz. Şimdi kodumuzu yazalım

<head>
<script language="Javascript">
function kontrolet(alan)
{
  if(alan.value.length<1)  //elementimizin value propertysinin uzunluğuna bakıyoruz. Boş ise
{
alert("Alanı boş bırakma");   // alert metotu ile uyarı penceresi oluşturuyoruz
                                          // ve False değerini döndürüyoruz.
return false;

}

else
{
   return true;
}

}

</script>
</head>  
  Kullanacağımız fonksiyonu head başlık kısmına yazdık.Şimdi body kısmında nasıl kullanacağımızı görelim

<body>
<form action="" method="post" name="formum" >
<input type="text" name="isim" value="" onBlur="kontrolet(this)"> // elementin onBlur propertsinde                    
                                                                                           // fonksiyonu çağırdık  ve this  anahtar kelimesi
                                                               // ile bulunduğumuz elementi gösterdik. Bu element için this=isim dir.

<input type="text" name="soyisim" value="" onBlur="kontrolet(this)"> //elbette this yerine soyisim de      
                                                                                                           //yazabiliriz.
</form>
</body>

onBlur ==>Nesneden ayrılma durumunu izah eder. Mesela kullanıcı adını tıkladıktan sonra boş bırakıp fareyi başka yere götürdüğünüzde  fonksiyon devreye girer.

Kodumuz bundan ibaret arkadaşlar. Son derece kolay ve kullanışlı. Yakında Jquery uygulamaları gelecek. Bi sonraki blogda görüşmek dileğiyle hoşçakalın...

29 Mayıs 2012 Salı

Javascript'le tarih yazdırma

Merhaba arkadaşlar.1-2 gündür bloga bakmıyodum ara sıra aklıma gelse de sonra bişiler eklerim diyerek geçiştirdim.Ama bu blog bana bi sorumluluk gibi geliyor artık.İnsanın elinde olmadan bişiler ekleme gerekliliğini kendisinde hissediyor. Bu akşam Javascript çalışırken babamın "sende bişiler üret artık" ikazının ardından(fırça yedim aslında)  baktığım ve "aa ne güzelmiş kısa ve kolay bi kod " dediğim kod parçasını sizlere açıklayarak anlatacağım. Kod web sayfamızda o an bulunduğumuz ayın gününü(0-30), haftanın gününü 0-6 ve pazar, p.tesi şeklinde ve de saati dk yı saniyeyi yazdıracak. Tabi bunları daha da artırabiliriz.Neyse uzatmadan kodu paylaşmak istiyorum

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>takvim</title>

<script language="javascript">

gunler=new Array("Pazar","Pazartesi","Salı","Çarşamba","Perşembe","Cuma","Cumartesi")

aylar=new Array("Ocak","Şubat","Mart","Nisan","Mayıs","Haziran","Temmuz","Ağustos","Eylül","Ekim","Kasım","Aralık")

simdi=new Date

</script>
</head>

<body>

<script language="javascript">

document.write("<h2> bugun gunlerden   :  " +gunler[simdi.getDay()] + "  ,  " +simdi.getDate() + "   "+aylar[simdi.getMonth()]+ "  saat  " +simdi.getHours()+"."+simdi.getMinutes()+"."+simdi.getSeconds()+".</h2>");

</script>
</body>
</html>

Şimdi yavaş yavaş kodumuzu açıklayalım. öncelikle head tagları arasındaki scriptimizde günler ve aylar isimli dizilerimizi oluşturuyoruz. Diğer programlama dillerinde olduğu gibi, tek farkı önünde veri tipi yok.dizilerimizi oluşturduktan sonra body tagları arasındaki scriptimize geliyoruz. Öncelikle document.write() metodu ile sayfaya içerik yazıyoruz.Bunu bilmeliyiz. Bu kodda biliyorum ki en çok merak ettiğiniz getDay(), getMonth(), getDate, metotları ne işe yarıyo. Hemen söylüyorum.

getDay() ==> Haftanın gününü(Pazar=0, Ptesi=1 şeklinde).Yani bize tamsayı değer döndürür.
getDate()==> Ayın içinde bulunduğumuz günü(0-30 arası)
getMonth()=>>İçinde bulunduğumuz ayın index no sunu verir.(Mayıs için 4 mesela)
getHours()==>İçinde bulunulan saat(0-23 arası)
 getMinutes()==>İçinde bulunulan dakika(0-59 arası)
getSeconds()==>İçinde bulunulan saniye.

Evet arkadaşlar yukarıda gösterdiğim metotların döndürdüğü değerler dizi değişkenine atanarak dizinin o indekse karşılık gelen değerini yazdırıyoruz.Olay kısaca bundan ibaret.Çok ilginiz çekmeyebilir ama paylaşmadan geçemedim. Başka paylaşımlarla buluşmak dileğiyle. Sağlıcakla kalın...