none
dataGridView'deki Column alanını küçükten büyüğe doğru sıralama RRS feed

  • Soru

  • arkadaşlar merhaba kolay gelsin, datagrid'imde esas numarası alanı var, bu esas numaları örneğin 2017/1, 2017/2, 2017/3 ... 2017/50.

    butona komut atayım küçükten büyüğe doğru sırala dediğimde 1 10 11 12 13 2 3 gibi saçma sapan bir sıralama yapıyor. 

    Özellikle belirteyim Select DESC özelliğini denedim. Esas Numarası alanını İnteger değerine de çevirdim ama sanırım başarılı olamadım. yardımlarını bekliyorum. şimdiden teşekkür ederim.

    resim

    http://hizliresim.com/1VzNpp



    • Düzenleyen ixmail 8 Şubat 2017 Çarşamba 20:04
    8 Şubat 2017 Çarşamba 20:04

Yanıtlar

Tüm Yanıtlar

  • Çalışan projeyi buradan indirebilirsin: EsasNo

    .sln dosyası yok - .csproj dosyasına çift tıklayın, build sonrası .sln olarak saklayacaktır.

    Ekranlardan görülebileceği gibi her iki yönde sıralama yapıyor:

    Eğer Esas Numarası sütünundaki değerler aynı ise, bu sefer Karar Numarasına göre sıralıyor.  Bunu göstermek için senin verilerine iki satır daha ekledim.



    8 Şubat 2017 Çarşamba 20:50
  • öncelikle yanıtın için teşekkür ederim, ancak örneğin sütunda 2016/10 olduğunda 1 10 şeklinde sıralama yapıyor, senin verdiğin kodu daha önce denemiştim, bunun önüne geçemiyorum.

    http://i.hizliresim.com/o0BpRQ.jpg

    9 Şubat 2017 Perşembe 15:05
  • Öncelikle bu bir hata değil. Text alanların sıralanması bu şekildedir. Siz text bir alanın sayı gibi sıralanmasını istiyorsunuz. O zaman sayıya çevirin.

    SELECT * FROM TABLO ORDER BY CAST(SUBSTRING(ESASNO,4,128) AS INT)

    olarak deneyin

    ek:

    Yılına göre de yapmak istiyorsanız

    SELECT * FROM TABLO ORDER BY CAST(SUBSTRING(ESASNO,1,4) AS INT), CAST(SUBSTRING(ESASNO,4,128) AS INT)


    pgnchess.com

    dergikapaklari.com


    9 Şubat 2017 Perşembe 16:10
  • çok teşekkürler bu şekilde oldu, son olarak bir sorum var o datagridview de 2017/1, 2017/2, 2017/5 gibi kayıtlar var, bu datagridview'deki kayıtların "/" işaretinden sonrakileri okuyarak bir diziye aktarabilir miyiz ? yani oku dediğimde 1, 2 ve 5 i okuyacak. bunu yapabilir miyiz ?
    9 Şubat 2017 Perşembe 16:43
  • string str = "2017/11";
    var result = str.Substring(str.LastIndexOf('/') + 1);
    

    result -> "11"
    9 Şubat 2017 Perşembe 16:50
  • Yılına göre de yapmak istiyorsanız

    SELECT * FROM TABLO ORDER BY CAST(SUBSTRING(ESASNO,1,4) AS INT), CAST(SUBSTRING(ESASNO,4,128) AS INT)

    Şu kısım:

        CAST(SUBSTRING(ESASNO, 4, 128) AS INT)

    Şöyle olmayacak mı?

        CAST(SUBSTRING(ESASNO, 6, 128) AS INT)

    9 Şubat 2017 Perşembe 17:54