Skip Navigation LinksYazgeliştir Forumları » ADO.Net » CommandText Sorusu?
                        
Sayfa 1 / 1[4Cevap]
CommandText Sorusu?
Kullanıcı İçerik

vegeta

 
CommandText Sorusu?
Gönderim Zamanı: 18-03-2014 15:48:03

vegeta

Üyelik Zamanı: 15-09-2012 13:31:34

Gönderi: 10

Puan: 164

Aklıma takılan bir konu var onu açıklamak için aşağıda 2 tane örnek veri kaydı veriyorum.

Baştan belirtmek isterim elle yazdığım için karakter duyarlılığını göz ardı etmenizi rica ederim.

1)

BaglantiStr="data source=.;initial catalog=Deneme;integrated securty=sspi";

sqlconnection baglanti=new sqlconnection(baglantistr);

baglanti.open();

**string sorgu="insert into tablo_ismi (sutun_isimleri) values (degerler)";

**sqlcommand cmd=new sqlcommand(sorgu,baglanti);

cmd.executenonquery();

baglanti.close();

2)

BaglantiStr="data source=.;initial catalog=Deneme;integrated securty=sspi";

sqlconnection baglanti=new sqlconnection(baglantistr);

baglanti.open();

**sqlcommand cmd=new sqlcommand(null,baglanti);

**cmd.commandtext="insert into tablo_ismi (sutun_isimleri) values (degerler)";

cmd.executenonquery();

baglanti.close();

 

Bu iki örnekte ** ile işaretlediğim kısımlar arasında bir fark var mıdır?Yani performans, güvenlik vb. yoksa sadece aynı yeri sol işaret parmağı ile göstermek yerine sağ işaret parmağı ile göstermeyi tercih etmek gibi bir durum mu söz konusudur?

Varsa da sorguyu daha hızlı çalıştırmamızı sağlayacak bir yöntem söyleyebilir misiniz?(c# tarafında)

Vereceğiniz bilgiler için şimdiden teşekkür ederim.


1#

serkan1987

 
Ynt:CommandText Sorusu?
Gönderim Zamanı: 18-03-2014 17:45:02
Bu cevap çözüm olarak işaretlendi.

serkan1987

Üyelik Zamanı: 24-07-2011 16:50:43

Gönderi: 840

Puan: 5879

sorgu içerisindeki values gibi birden çok değer alabilecek yerlerde + ile string birleştirme yapacağın her ifade güvenlik sorununa sebep olur.o yüzden kesinlikle parametre kullanmalısın.

örneğin

string sorgu="insert into tablo values("+deger1+","+deger2+")";

cmd.commandtext=sorgu;

 

yerine

 

cmd=new SqlCommand("insert into Tablo values(@param1,@param2);

cmd.parameters.addwithvalues("@param1",deger1);

 

şeklinde kullanmalısın


Kişisel Blog Sayfam

http://www.serkancamur.com

2#

vegeta

 
Ynt:CommandText Sorusu?
Gönderim Zamanı: 18-03-2014 19:47:47

vegeta

Üyelik Zamanı: 15-09-2012 13:31:34

Gönderi: 10

Puan: 164

Serkan bey verdiğiniz bilgiler için teşekkür ederim herhalde kodun daha hızlı çalışmasını sağlamak için command nesnesinin içinde sorguyu tanımlamamı tavsiye ettiniz.Sorguya + ile komut eklememeyi artık kulağıma küpe ederim, çünkü benim de yaptığım bir hataydı.Tekrardan teşekkür ederim verdiğiniz bilgiler için.


Bu kayıt vegeta tarafından 18-03-2014 21:19:14 tarihinde düzenlendi.
3#

serkan1987

 
Ynt:CommandText Sorusu?
Gönderim Zamanı: 18-03-2014 21:57:47

serkan1987

Üyelik Zamanı: 24-07-2011 16:50:43

Gönderi: 840

Puan: 5879

buna ek olarak performansa biraz katkı istiyorsanız insert into sorgusu yerine stored procedure kullanarak

veritabanı işlemleri gerçekleştirmenizi öneririm.böylece adonetin yükünün bir kısmını sqle aktarmış olursunuz.


Kişisel Blog Sayfam

http://www.serkancamur.com

4#
Sayfa 1 / 1[4Cevap]

İşaretler & Anlamları
Kilitli Kilitli
Çözüm Kabul Edildi Çözüm Kabul Edildi
Normal Normal