locked
C# Birden fazla sorgu arasından seçim yapmak istiyorum RRS feed

  • Soru

  • Merhaba;

    C#'da yeniyim. Ve bir program yazdım şuan çalışıyor ancak.

    C#'da örneğin bu yıl geçerli olan "Tablo_2016" 'den veriler çekiyorum Örneğin Barkod numarası ile fiyat çekme gibi.

    Tabi gelecek yıl "Tablo_2017" tablosundan çekmem gerekecek. tek bir sorgu yazdım şu şekilde.

    komut.CommandText = "SELECT LG_004_UNITBARCODE.LOGICALREF, LG_004_PRCLIST.PRICE FROM LG_004_UNITBARCODE  INNER JOIN LG_004_PRCLIST ON LG_004_UNITBARCODE.LOGICALREF = LG_004_PRCLIST.LOGICALREF WHERE BARCODE='" + textBox1.Text + "' ";

    bu sorgudaki LG_004 tablosu gelecek yıl LG_005 olacak ya da LG_100 olacak dışarıdan bu sorgu içeriğini nasıl güncelleyebilirim.

    26 Ocak 2016 Salı 21:03

Tüm Yanıtlar

  • Yanlış anlamadı isemki anlarım :), her yıl için, içinde aynı tanımı içeren ayrı bir tablo yaratıyorsun.
    Bunun yerine key alanına YIL ekleyip tabloyu yaratsan, tek tablo ve tek sorgu olur. Selectde ilgili yılı değişken olarak gönderip çekiyorsun. Sorgu aynı kalır.

    Ama her yıl için ayrı tablo yaratman gerekliyse ki bazen gerekebiliyor ve sorgu aynı kalacaksa.
    Her yıl Tabloyu yaratırken aktif yıl rakamını tablo isminin sonuna koyarsan olur. LG_004 yerine. 2016 yılı için LG_2016, 2017 yılı için LG_2017 gibi.

    Sorguda aktif yılı, tablo ismine eklersin. tablo ismin bu sorguda örnek olarak LG_004 olduğunu yazmışsın... buradan hareketle.

    Sorgun şöyle başlıyordu.
    komut.CommandText = "SELECT LG_004_UNITBARCODE.LOGICALREF, LG_004_PRCLIST..."

    Şuna çevirmelisin.
    // burada aktif yıl rakamını aldık ve sorguya ekleyebilmek için stringe çevirdik.
    string aktifYIL = DateTime.Today.Year.ToString();

    komut.CommandText = "SELECT LG_" + aktifYIL + "_UNITBARCODE.LOGICALREF, LG_" + aktifYIL + "_PRCLIST..."

    tablo isminin geçtiği her yere aktifYIL ı eklemen sorununu çözecek gibi...

    2 Şubat 2016 Salı 14:53
  • Deleted
    2 Şubat 2016 Salı 20:25
  • Logo tablo yapısı. Yer yıla ayrı tablo oluşturuyor. Bunların saklandığı tablo olmalı. Burada Olcay GUZEL oluşturduğu dinamik sorgu var sorununu çözer.

    kdrgny@outlook.com

    3 Şubat 2016 Çarşamba 07:29
  • Her yıl için ayrı tablo yapmak neyin kafası acaba :)

    dbase de kalmış bunnar.


    www.mvcblog.org
    e-mail: onay[nokta]yalciner[at]hotmail[nokta]com

    3 Şubat 2016 Çarşamba 09:48
    Moderatör
  • Açıkçası konuya yeterli cevap verildiği için cevaba yönelik birşey yazmayacağım ancak her yıl için yeni bir tablo kullanan hatta yeni veritabanı kullanan bir çok paket programın var olduğunu unutmamak gerek. 

    Her yıl için yeni tablo kullanmanın mantığı olarak içerisine bir yıl içerisinde milyon kayıt olan tablolardan bahsediyoruz.

    Büyük veri yığınları ile hiç çalışmadıysanız "her yıl için yeni bir tablo açılmaz" gibi cevaplar yazmanız olası, tek bir tablosunda 8 milyon küsür kayıt olan veritabanından anlık olarak 120 kişinin çalıştığı bir işyerinde sürekli sorgu çekmenizi gerektirecek bir program yazmanız gerekiyorsa ve size sistemin hızlı çalışması gerektiği söyleniyorsa niye farklı tablolar kullanmamışlar diye düşünebilirsiniz.


    i can change the world, just need the source code..

    5 Şubat 2016 Cuma 00:04
  • bende ilk olarak tablo yapısını gördüğümde çok garipsemiştim açıkçası. Lakin programla binlerce lira verince ve çalışma mantığını biz seçemediğimiz için mevcut yapıya çözümler üretmekten başka çaremizin olduğunu sanmıyorum. Önemli olan logo bunu nasıl algılıyor. Bir tablosu vardır ve ona başlı olarak firmalara dinamik bağlantı oluşturuyordur. Bunu bulmanız gerekiyor.

    kdrgny@outlook.com

    5 Şubat 2016 Cuma 07:24
  • Tabi bu işi yapanların bilgileri yetersiz olduğu için yaptıkları yanlış şeyler giriş seviye yazılımcılar(!) tarafından çok sattıkları için sanki doğru zannediliyor.

    Ben 3-4 milyon seviyesinde kayıtlarla çalıştım, peki sen database nedir biliyormusun? Index nedir? Key nedir biliyormusun? tabloda 8 değil 18milyon kayıt olsa ne değişir? eğer tablo yapısı işi bilen ve kafası çalışabilen biri tarafından hazırlanırsa kayıt sayıları sorgu sürelerini etkilemez. Ama dediğim gibi bilgisiz kişiler sanki kayıt fazla olunca sorgu süresi uzar gibi algılar. "Database şişer" kafasındaki kişiler tablo hazırlarsa ve bunlar çok satınca junior'lar bunu doğru zannediyor malesef, Database şişmesi için tasarlanmış bişeydir.

    Her yıl için ayrı tablo açmak , 20 yaşındaki kişilere ayrı tablo 21 yaşındakilere ayrı tablo açmakla aynı şeydir.


    www.mvcblog.org
    e-mail: onay[nokta]yalciner[at]hotmail[nokta]com


    5 Şubat 2016 Cuma 08:07
    Moderatör
  • Arkadaşlar, neden farklı tablo istediğini bilmiyoruz. Bende bu forumda bir soru sordum ve foruma borçlu olduğumu hissettiğim içinde bazı kişilerin sorularına yanıt verdim. Ancak gördümki forumda kendi fikrini başkalarını kötülemeye çalışarak söylemeye çalışanlar var. Bu beni çok rahatsız etti, o sebeple yanıtsız kalmış sorulara bile yanıt vermeye çekinir oldum.

    Lütfen fikrinizi diğer kişileri kırmadan söylemeye çalışın. Türkiyenin en büyük projelerinde pek çok farklı dil ve sistemde yerli ve yabancılarla çalıştım. Dijital dünyada kesin bişey yoktur. İsteyen her ay içinde farklı tablo yaratabilir. Lütfen sadece fikrimizi söyleyelim ve tartışma için ayrı topik açalım. Kırıcı olmadan tartışma iyi bir şeydir.

    5 Şubat 2016 Cuma 10:17
  • İşte ülkemin genel sorunu bu, trafikte, eğitimde, sağlıkta, sokakta her konuda: cehalet ve kalitesizlik. Her şeyi bildiğimiz için değil öğrendiğimiz için yaparız, sorgulamayız bilmeyiz. "Piyasada x tane program var onlar da öyle yapmış" demek "ben bu konuda bilgisizim" demenin başka bir yoludur. 

    n programını yazanlar para kazanma amacıyla "günü kurtarma" şeklinde yaptığı bazı şeyler neden sanki doğruymuş gibi kabul edilip bide "Büyük veri yığınları ile hiç çalışmadıysanız "her yıl için yeni bir tablo açılmaz" gibi cevaplar yazmanız olası, " gibi bir tespit nasıl yapılabilir? 

    Cehaletin katmerlenmiş , yanlışın doğru olmuş hali budur.

    "Dijital dünyada kesin bişey yoktur." yazabiliyorsanız bu konuya o kadar uzaksınız demektir ki, anlatamam. :)


    www.mvcblog.org
    e-mail: onay[nokta]yalciner[at]hotmail[nokta]com


    5 Şubat 2016 Cuma 10:32
    Moderatör
  • Önay hocam yazdıklarımı yeniden okumanızı öneririm, konuyu burada bir tartışmaya döndürmek gereksiz, ancak ben önceki yazımı da okursanız piyasada x tane program var onlar öyle yapmış öyleyse yaptıkları doğrudur demiyorum. "piyasada x tane program var ve biz bu programlara entegre yazılımlar geliştirmek zorunda kaldığımızda(!) veritabanına müdahale edemediğimiz(!) bu paket programların milyon kayıttan oluşan tablolarına bağlanıp kod geliştirmek zorunda kalıyoruz bu gerçeği göz ardı etmemek gerekiyor diyorum. 

    Yazdıklarımı yeniden okursanız siz de çok kayıt olacak tablolarda her yıl için yeni bir tablo açın gibi bir ifade olmadığı rahatlıkla görebilirsiniz. Bilginiz iyi olabilir, benden daha iyi de olabilir bilmiyorum, ancak kalkıp burada "sen index nedir,database nedir bilir misin" gibi cümleler kurarsanız kendinizi komik duruma düşürürsünüz. 

    Ve daha önce söylediğim gibi bir çok paket programda bulunan "Büyük veri yığınları ile hiç çalışmadıysanız her yıl için yeni bir tablo açılmaz" gibi cevaplar yazmanız olası". 

    Benim yazılım bilgim ve geliştirdiğim kod hakkında bilginiz yok, ben de sizin forumda verdiğiniz cevaplardan iyi bir yazılımcı olduğunuzu düşünüyorum hepsi bu kadar, belki yazılım standartlarınız iyidir ya da kötüdür bunu yaptıgınız projeleri görmeden söylemek biraz zor. 

    Üstelik daha önce ki cevabımda size laf sokmak gibi bir niyet içerisinde değildim, neyi üstünüze aldınız niye bu şekilde bir karşılık verme gayretine girdiğinizi anlamak zor.

    Forumun genel tartışma konusu burası olmadığı için bu konuyu uzatmayı gereksiz görüyorum. Herkese iyi çalışmalar.


    i can change the world, just need the source code..

    5 Şubat 2016 Cuma 13:36
  • yaa üff.

    www.mvcblog.org
    e-mail: onay[nokta]yalciner[at]hotmail[nokta]com

    5 Şubat 2016 Cuma 13:47
    Moderatör