folder Tahribat.com Forumları
linefolder C#, Asp.Net, .Net Core
linefolder Asp.Net Te Sql Parametresine Değer Yollama Sorunu??



Asp.Net Te Sql Parametresine Değer Yollama Sorunu??

  1. KısayolKısayol reportŞikayet pmÖzel Mesaj
    Hannibal_King
    Hannibal_King's avatar
    Kayıt Tarihi: 22/Ağustos/2010
    Erkek
           public List sorulari_cek(string kelime)  
           {
                List soru_listesi = new List();
    
                string mycommand = "select * from sorular where grup in (@deneme) order by NewID()";
    
                SqlCommand com = new SqlCommand(mycommand, con);
    
                com.Parameters.AddWithValue("@deneme",kelime);
                con.Open();
    
                SqlDataReader rd = com.ExecuteReader();
                while (rd.Read())
                {
                   sorular nesne = new sorular();
                    nesne.soru_ID =Convert.ToInt32(rd["soru_ID"]);
                    nesne.soru = rd["soru"].ToString();
                    nesne.cevap = rd["cevap"].ToString();
                    nesne.grup = Convert.ToInt32(rd["grup"]);
                    soru_listesi.Add(nesne);
                }
                con.Close();
                return soru_listesi;
            }


    Kod tarafından kelime isimli string değişkenimi   2,15,6,0  şeklinde direk yolluyorum class taki fonksiyona 2. 15. 6. ve  0. gruba ait soruları getırsın diye ama runtime da 

    Conversion failed when converting the varchar value ‘1,2,0’ to data type int." 

    gibisinden hata veriyo 1,2,0 kısmı yerine kelime yazıyo bazen hatada biraz baktım cast ve convert fonksıyonu kullan demısler 

    beceremedım onuda 1-2 denedım olmadı. sql de İN operatorune nasıl değişken sayıda parametre yollayabilirim.??



  2. KısayolKısayol reportŞikayet pmÖzel Mesaj
    CEO
    CEO's avatar
    Kayıt Tarihi: 28/Şubat/2009
    Erkek

    string mycommand = "select * from sorular where grup in "+ kelime +"order by NewID()";

    Bu şekilde yap hacı abi neden birdaha diğer türlü uğraşıyorsun ki ?

  3. KısayolKısayol reportŞikayet pmÖzel Mesaj
    Hannibal_King
    Hannibal_King's avatar
    Kayıt Tarihi: 22/Ağustos/2010
    Erkek

    dediğin gibi yaptım oldu hocam peki bu yöntem güvenlik açısından sıkıntılı olur mu bazı yerlerde parametreli kullanın demişlerde hep

  4. KısayolKısayol reportŞikayet pmÖzel Mesaj
    GUS
    GUS's avatar
    Kayıt Tarihi: 24/Şubat/2013
    Erkek

    hocam bence entity framework kullan kullanıcıdan aldığın değeri temizlemeden sorguya gönderme onun dışında güvenlikle ilgili problem yaşayacağını sanmıyorum. Bende o güvenlik olayını bi ara baya taktımda ondan söylüyorum boşuna kafa yormaya gerek yok :)


  5. KısayolKısayol reportŞikayet pmÖzel Mesaj
    Hannibal_King
    Hannibal_King's avatar
    Kayıt Tarihi: 22/Ağustos/2010
    Erkek

    bu örnekte burdaki kelime stringinde, checkboxlistteki listitemlerin value larını tutuyorum tüm checkboxlist i gezıyorum kullanıcı hangi itemlere tik koymussa kelime değişkenime  sırası ile o itemlerin value larını ekliyorum. Yani bu örnek için risk olmaz sanırım kullanıcı bi yere bişey yazmamıs oluyo. Entity Framework ile ilgili bişeyler okuyodum şimdi de performans olarak iyi değil yazmıs birisi ?

  6. KısayolKısayol reportŞikayet pmÖzel Mesaj
    GUS
    GUS's avatar
    Kayıt Tarihi: 24/Şubat/2013
    Erkek
    Hannibal_King bunu yazdı

    bu örnekte burdaki kelime stringinde, checkboxlistteki listitemlerin value larını tutuyorum tüm checkboxlist i gezıyorum kullanıcı hangi itemlere tik koymussa kelime değişkenime  sırası ile o itemlerin value larını ekliyorum. Yani bu örnek için risk olmaz sanırım kullanıcı bi yere bişey yazmamıs oluyo. Entity Framework ile ilgili bişeyler okuyodum şimdi de performans olarak iyi değil yazmıs birisi ?

    boşver hocam onları sen adoyu ögrenme demiyorum zaten öyle çok aktaksiyonu yok 1 proje yap tamam de ado oturdu sonra entity ile devam et kod ezberleme mantık oturunca internetten bakıyon kodlara zaten benim gibi boşuna amelelik yapma okulda bizede dediler ado ado ado ögrendik o kadar kastik iş yerinde 1 kere yaptim tepki şuydu olm napiyon sen manyakmisin entity ile yapsana piyasada en tutucu adocular bide artik entity yapıyor boşuna amelelik yapmaktan bıkmışlar


  7. KısayolKısayol reportŞikayet pmÖzel Mesaj
    zeybekustasi
    zeybekustasi's avatar
    Kayıt Tarihi: 24/Mayıs/2012
    Erkek
    GUS bunu yazdı
    Hannibal_King bunu yazdı

    bu örnekte burdaki kelime stringinde, checkboxlistteki listitemlerin value larını tutuyorum tüm checkboxlist i gezıyorum kullanıcı hangi itemlere tik koymussa kelime değişkenime  sırası ile o itemlerin value larını ekliyorum. Yani bu örnek için risk olmaz sanırım kullanıcı bi yere bişey yazmamıs oluyo. Entity Framework ile ilgili bişeyler okuyodum şimdi de performans olarak iyi değil yazmıs birisi ?

    boşver hocam onları sen adoyu ögrenme demiyorum zaten öyle çok aktaksiyonu yok 1 proje yap tamam de ado oturdu sonra entity ile devam et kod ezberleme mantık oturunca internetten bakıyon kodlara zaten benim gibi boşuna amelelik yapma okulda bizede dediler ado ado ado ögrendik o kadar kastik iş yerinde 1 kere yaptim tepki şuydu olm napiyon sen manyakmisin entity ile yapsana piyasada en tutucu adocular bide artik entity yapıyor boşuna amelelik yapmaktan bıkmışlar

    kime sql desem entity diyor.

    baktım evet daha kolay ama sql i tam anlamadan geçmek bence yanlış olur. 

    bütün sorguları çalışan bir uygulama yapıp geçmek daha mantıklı


    https://www.youtube.com/watch?v=WC3-71NKwPw
  8. KısayolKısayol reportŞikayet pmÖzel Mesaj
    unbalanced
    unbalanced's avatar
    Kayıt Tarihi: 14/Haziran/2006
    Erkek
    zeybekustasi bunu yazdı
    GUS bunu yazdı
    Hannibal_King bunu yazdı

    bu örnekte burdaki kelime stringinde, checkboxlistteki listitemlerin value larını tutuyorum tüm checkboxlist i gezıyorum kullanıcı hangi itemlere tik koymussa kelime değişkenime  sırası ile o itemlerin value larını ekliyorum. Yani bu örnek için risk olmaz sanırım kullanıcı bi yere bişey yazmamıs oluyo. Entity Framework ile ilgili bişeyler okuyodum şimdi de performans olarak iyi değil yazmıs birisi ?

    boşver hocam onları sen adoyu ögrenme demiyorum zaten öyle çok aktaksiyonu yok 1 proje yap tamam de ado oturdu sonra entity ile devam et kod ezberleme mantık oturunca internetten bakıyon kodlara zaten benim gibi boşuna amelelik yapma okulda bizede dediler ado ado ado ögrendik o kadar kastik iş yerinde 1 kere yaptim tepki şuydu olm napiyon sen manyakmisin entity ile yapsana piyasada en tutucu adocular bide artik entity yapıyor boşuna amelelik yapmaktan bıkmışlar

    kime sql desem entity diyor.

    baktım evet daha kolay ama sql i tam anlamadan geçmek bence yanlış olur. 

    bütün sorguları çalışan bir uygulama yapıp geçmek daha mantıklı

    kavramları yanlış kullanıyorsunuz. sql ile entitiy framework karşılaştırılması yapılamaz öncelikle. Öyle olsaydı EF ile sql sorgu çalıştıramazdın.

    Konu sahibinin yazdığı kodlar Ado . NET ile alakalı, bir süre önce ise alternatif olarak model bazlı bir yapı yayımlandı, entity framework. 3 parçaya ayrılan EF ile

    1- model first

    2- code first

    3- db first

    veritabanı işlemlerinizi yapabilirsiniz. Bu 3 yapının da kendine göre avantajları var (internette bulabilirsiniz muhtemelen)

    Ado .NET boşverilmez elbette, çünkü yazılımda mümkün mertebe bir çok konuya hakim olmalı, ama geçmiş teknolojileri/yapıları iyi bilse de yeni teknolojilere açık olup onları öğrenmeli. Aksi takdirde kaliteli firmalarda kendine yer bulamaz.

    Neden geçmiş şeyleri öğrenmeli? Karşılayacağınız sistem her zaman yeniye uyarlı olmayabilir, mesela güncellenmesi gereken bir projede ado .net kullanılmışsa, kişi sadece EF biliyorsa öğrenmek için tekrar uğraşması lazım. Ama yeni bir proje yapılıyorsa ve veritabanı yapısı uygunsa ado .net yerine EF kullanılabilir. Her ne kadar projeye göre hareket etmek gerekse de EF kullanmanın bir çok avantajı mevuct.

     


    Ülkesini Seven Her Türk Vatandasi, Ülkesinin Sessiz Istilasi'na karsi durmak zorunda.
  9. KısayolKısayol reportŞikayet pmÖzel Mesaj
    GUS
    GUS's avatar
    Kayıt Tarihi: 24/Şubat/2013
    Erkek
    unbalanced bunu yazdı
    zeybekustasi bunu yazdı
    GUS bunu yazdı
    Hannibal_King bunu yazdı

    kavramları yanlış kullanıyorsunuz. sql ile entitiy framework karşılaştırılması yapılamaz öncelikle. Öyle olsaydı EF ile sql sorgu çalıştıramazdın.

    Konu sahibinin yazdığı kodlar Ado . NET ile alakalı, bir süre önce ise alternatif olarak model bazlı bir yapı yayımlandı, entity framework. 3 parçaya ayrılan EF ile

    1- model first

    2- code first

    3- db first

    veritabanı işlemlerinizi yapabilirsiniz. Bu 3 yapının da kendine göre avantajları var (internette bulabilirsiniz muhtemelen)

    Ado .NET boşverilmez elbette, çünkü yazılımda mümkün mertebe bir çok konuya hakim olmalı, ama geçmiş teknolojileri/yapıları iyi bilse de yeni teknolojilere açık olup onları öğrenmeli. Aksi takdirde kaliteli firmalarda kendine yer bulamaz.

    Neden geçmiş şeyleri öğrenmeli? Karşılayacağınız sistem her zaman yeniye uyarlı olmayabilir, mesela güncellenmesi gereken bir projede ado .net kullanılmışsa, kişi sadece EF biliyorsa öğrenmek için tekrar uğraşması lazım. Ama yeni bir proje yapılıyorsa ve veritabanı yapısı uygunsa ado .net yerine EF kullanılabilir. Her ne kadar projeye göre hareket etmek gerekse de EF kullanmanın bir çok avantajı mevuct.

    hocam bende bunu dedim ama böyle detay verince insanların kafası karışıyor bu ufak tefek şeylere takan adamlar için tam bir kabus oluyor EF mi Ado mu EF ama model mi code mu db first mü böylece adam programlamaya başlamadan db den soguyor ben hepsini araştırmıştım bak araştırma demiyorum böyle şeyler olduğunu ögren hepsi ilede yapabiliyorsan bir uygulama yap yapamıyorsanda çok takma bence Entity de db first şeklinde gidebilirsin gayet kolay ve akıcı yapacağın şey SQL serverda tablo yapılarını kurup visual studioya aktarmak oluyor

    @Hannibal_King adoda db den verileri alıp class oluşturup gezdiriyonya projede entity de classların hepsini otomatik kendi oluşturuyo hani kendi yapıyor diye yanlış algılama kontrol bende degilmiş hissi uyandırmasın herşey kitabına uygun hiçbir sıkıntısı yok

    @unbalanced hocam code first ile falanda proje yaptımda 1 yaptım 2 yaptım sonra nedir bu amelelik ulan diosun bırakıyosun çünkü işte öyle sınırsız zamanın yok adam diyor proje yarına yetişcek e oturda code first ile db yapip 1 günde proje çıkar.

    hocam nerde çalışıyon ne ediyon bilmiyom ama türkiyedeki ajans politikası böyle genelde

    GUS tarafından 19/Eki/14 18:40 tarihinde düzenlenmiştir

  10. KısayolKısayol reportŞikayet pmÖzel Mesaj
    unbalanced
    unbalanced's avatar
    Kayıt Tarihi: 14/Haziran/2006
    Erkek

    Code first çalışman şart değil hocam, eğer db yi ayrı tasarlamışsan direk olarak db yi ekleyip modelini yaratabilirsin bu çok daha kolay olur.

    türkiyesini bilmem hocam da yarın projeyi teslim et demenin bir mantığı yok. Yazılım geliştirmenin aşamaları var. Bu sebeple ülkemizdeki yazılımlar dünya çapında değil. Dandik muhasebe programlarında bile yığınla hata olabiliyor. Neden? Kendine yazılımıcı diyen adamların ne design patternlerden ne unit testlerden haberi var. Tasarım ekranında butona çift tıklayıp tüm kodu oraya yazan dangalaklar profesyonelim diye ortada geziyor (lafım bunu yapan herkese değil, bunu yapıp da kendine profesyonelim diyenlere)

    Projeden kastın nedir bilmem ama benim çalıştığım projeler aylar süren işler hocam, iki satırda yaz işin içinden çık olayı yok, ayrıca içerisinde AR&GE de barındırdığı için en temiz şekilde kodunu yazmak zorundasın.

    Kendini bu şekilde yetiştirmeye bak. Ve sana bu imkanları sağlayan firmalarda çalışmanı tavsiye ederim.


    Ülkesini Seven Her Türk Vatandasi, Ülkesinin Sessiz Istilasi'na karsi durmak zorunda.
  11. KısayolKısayol reportŞikayet pmÖzel Mesaj
    CEO
    CEO's avatar
    Kayıt Tarihi: 28/Şubat/2009
    Erkek
    Hannibal_King bunu yazdı

    dediğin gibi yaptım oldu hocam peki bu yöntem güvenlik açısından sıkıntılı olur mu bazı yerlerde parametreli kullanın demişlerde hep

    Hocam parametre olarak vermekle direkt olarak böyle yazmak arasında bir fark olduğunu sanmıyorum.

    Sonuçta birini direkt olarak veriyorsun, diğerini parametre olarak(aslında bu da direkt olarak) veriyorsun.

    He eğer güvenlik çok önemliyse management studio ile sql fonksiyonu yazıp o fonksiyona parametre olarak verirsin, böylece yazdığın kodun güvenliğinden emin olabilirsin..

Toplam Hit: 1877 Toplam Mesaj: 21