11 Aralık 2014 Perşembe

Sql İle Sıralama Yapmak (2000, 2005, 2008 ,2012 ve Tüm versiyonlar)


sp_executesql N' select * from (select top 10 * from (select top 15 * from TblTablo order by Id ASC) a order by Kolon1 DESC) b order by Kolon1 ASC';


Top10 - Ekranda geri dönecek kayıt sayısını gösterir. Top15 ise başlangıç indisini. Bu Sorguda 15. kayıttan başlayarak 10 kayıt getirilmesini sağlamaktadır..

Aynı Kodun C# ile fonksiyon olarak sıralanması;

 private String PrepareQuery(String SiralanacakKolon, Boolean Azalan, Int32 SayfaIndex, Int32 SayfadakiKayit, Int32 KayitSayisi)
        {
            Int32 DonecekKayitSay = SayfadakiKayit;
            Int32 BaslanangicSayisi = SayfadakiKayit * (SayfaIndex + 1);
            if (BaslanangicSayisi > KayitSayisi)
            {
                DonecekKayitSay -= (BaslanangicSayisi - KayitSayisi);
            }
            return String.Format(
            @" sp_executesql N’
            select * from
            (select top {0} * from
            (select top {1} * from Customers order by {2} {3}) a
            order by {2} {4}) b
            order by {2} {3}’;",
            DonecekKayitSay,
            BaslanangicSayisi,
            SiralanacakKolon,
            Azalan ? "ASC" : "DESC",
            Azalan ? "DESC" : "ASC");
         }


23 Ekim 2014 Perşembe

SQL Saving changes is not permitted Hatası

Microsoft SQL Server Management Studio içerisinde, SQL tabloları üzerinde yaptığınız değişikliği kaydetmek istediğinizde, her hangi bir tablomuzun tipini değiştirmek istediğimizde yada tablo elemanının adını değiştirmek istediğimizde aşağıdaki gibi bir hata ile karşılaşırız.
Saving changes is not permitted. The changes you have made require the following tables to be dropped and re-created. You have either made changes to a table that can’t be re-created or enabled the option Prevent saving changes that require the table to be re-created.

Buradaki Sorun Tabloda Bir değişiklik yapmak istediğimizde Management Studio’nun buna izin vermeyip tabloyu yeniden oluşturmamızı istemesidir.Aslında Çözüm yolu çok basit, aşağıdaki adımları izleyerek bu sorunun üstesinden gelmiş oluyoruz.
Tools menüsüne girip Option seçeneğine oradan da Designers‘a geçip Table and Database Designers seçeneğini seçiyoruz. Burada işaretli olan  Prevent saving changes that require table re-creation checkbox’ın işaretini kaldırırsak bu hata ile bir daha karşılaşmamız oluruz.
Bu işlem sonrasında SQL Server 2008 Managament Studio ortamında oluşturmuş olduğumuz tablolar üzerinde istediğimiz değişiklikleri yapabiliyor olacağız.

9 Eylül 2014 Salı

C# Guid ile Key Üretme

Merhaba arkadaşlar bugün sizlere çok basit bir key üretme metodu olan Guid nasıl kullanılır onu anlatacağım. Çoğu yazılımcının işini görecek çok basit işlev kısaca aşağıdaki gibidir. Ben aşağıdaki kod dizinini metot olarak kullandım isteğe bağlı olarak istediğiniz koşullarda kullanabilirsiniz.
1public static string CreateActivationCode()
2{
3   string Code = Guid.NewGuid().ToString();
4   return Code;
5}


Bu metot ile oluşan key örnekleri aşağıdaki gibidir…
7d87117d-5577-46f5-8d74-81983e1a38af
6825ad18-e591-441b-8882-43a1bb7a3286


Bir başka makalede görüşmek dileğiyle

C# ile TC Kimlik Kontrolu

Merhaba arkadaşlar bugün sizlere çok fazla noktada işimize yarayabilecek olan C#’da TC Kimlik Kontrolü nasıl yapılır sorusuna yanıt verecek metodu paylaşacağım.
*Aşağıda metodun kullanım şeklini göreceğiz.
1//"11111111111" TC kimlik numarası hatalı olduğu için false dönecektir.
2bool result = TCNoKontrolu("11111111111");
3 
4//"10000000146" TC kimlik numarası doğru olduğu için true dönecektir. (TC Kimlik numarası olarak her yönden örnek olabilecek Ulu Önder Mustafa Kemal Atatürk'ün vatandaşlık numarası alınmıştır.)
5bool result = TCNoKontrolu("10000000146");


*TCNoKontrolu isimli metodumuz aşağıdaki gibidir.
01public static bool TCNoKontrolu(string TCNo)
02{
03    int[] TC = new int[11];
04    for (int i = 0; i < 11; i++)
05    {
06        string a = TCNo[i].ToString();
07        TC[i] = Convert.ToInt32(a);
08    }
09 
10    int tekler = 0;
11    int ciftler = 0;
12 
13    for (int k = 0; k < 9; k++)
14    {
15        if (k % 2 == 0)
16            tekler += TC[k];
17        else if (k % 2 != 0)
18            ciftler += TC[k];
19    }
20 
21    int t1 = (tekler * 3) + ciftler;
22    int c1 = (10 - (t1 % 10)) % 10;
23    int t2 = c1 + ciftler;
24    int t3 = (t2 * 3) + tekler;
25    int c2 = (10 - (t3 % 10)) % 10;
26 
27    if (c1 == TC[9] && c2 == TC[10])
28        return true;
29    else
30        return false;
31}


Bir başka makalede görüşmek dileğiyle…