30 Kasım 2010 Salı

Sql " GROUP BY " , "CAST" İşlemleri


"GROUP BY" :
Sql de zaman zaman bazı alanlarımızı gruplayarak listelemek isteyebiliriz.
Örneğin bir stok takip uygulamasında, birden çok depomuz var ve bu depolardaki toplam stok miktarlarını görmek istiyoruz..Bunun için şöyle bir sorgu yazabiliriz.

Önce Bu Testi Yapabiliceğiniz tablo bilgilerini veriyorum :
Tablo adımız : STOKLAR
Alanları da : urunID,StokMiktari,StokDepo


Oluşturduğumuz tablo için Sql Sorgusu :

SELECT urunID,StokMiktari FROM STOKLAR WHERE StokDepo IN(1,2,3)

bunun sonucunda her ürün için 3 adet satır dönücektir(herdepo stok bilgisi için ayrı satır) ve 3 depodaki stok miktarları ayrıca yazıcaktır.Fakat biz toplam stoğu görmek istiyoruz.3 tanesini topla çıkar yapmak zorunda değiliz deyil mi..

Onun içinde şöyle bir sorgu yazmalıyız :

SELECT urunID,SUM(StokMiktari) FROM STOKLAR WHERE StokDepo IN(1,2,3)
GROUP BY stokID

Şeklinde yazarsak her ürün ürün için 3 deponun toplam stok miktarını görmüş oluruz.


" CAST " :

Sql de bazen istediğimiz alanlarda tip dönüşümü yapmak isteyebiliriz.Örneğin integer bir alanı decimal yapmak gibi.Bu gibi işlemleri CAST anahtar sözcüğü ile yapabiliriz.
örnek yapalım :
SELECT CAST(StokMiktarı AS DECIMAL) FROM STOKLAR

umarım faydalı olmuştur.
Yunus Emre Web Developer

Morbi aliquam fringilla nisl. Pellentesque eleifend condimentum tellus, vel vulputate tortor malesuada sit amet. Aliquam vel vestibulum metus. Aenean ut mi aucto.

11 Kasım 2010 Perşembe

Yazılım Projelerinde Hayır Demeyi Öğrenin


Bir yazılım projesi talebiyle size gelen herkez,şüphesiz sizden bir sürü özellik istiycektir.Ve eğer her söylenene evet abi,yaparız tabi,tabi canım onu yapmaya nevar,olur olur ...gibi cvplar verir her istenene evet der iseniz.o proje yi ya çıkartamazsınız yada olması gerekenden çok daha uzun bir zamanda çıkartırsınız.

Bunun yöntemi şöyle olmalı ;proje de evet denecek özellikler birçok müşterinin istekleri sonucu ortaya çıkmış evetler olmalı ve bunlar genelde projenin sonraki versiyonlarında yapılmalı.Herzaman hayır demesini bilmek ve kısa sürede projeyi ortaya koyduktan sonra o baştaki hayırları önem sırasına göre evet yapmak gerekir.Aksi durumlarda o evet denen bütün özellikler proje sürecinde hayır a çevrilebilir ve bu karşı tarafta bir memnuniyetsizlik ve beraberinde güvensizlik yaratır.
Bunun yanında baştan hayır denip sonradan evet e çevrilen özellikler ise zamanla karşı taraftan size sürekli memnuniyet ve güven olarak geri dönecektir.

Umarım faydalı olmuştur..
Yunus Emre Web Developer

Morbi aliquam fringilla nisl. Pellentesque eleifend condimentum tellus, vel vulputate tortor malesuada sit amet. Aliquam vel vestibulum metus. Aenean ut mi aucto.

Biri Scrum mu dedi ? 8 Dakikanız var mı ? :)


Yunus Emre Web Developer

Morbi aliquam fringilla nisl. Pellentesque eleifend condimentum tellus, vel vulputate tortor malesuada sit amet. Aliquam vel vestibulum metus. Aenean ut mi aucto.

10 Kasım 2010 Çarşamba

Sql Hatası : " The data types ntext and varchar are incompatible in the equal to operator. "


bu sabah böyle bir hata ile karşılaştım ilk defa karşıma çıktı :)
Mesela "SELECT * FROM urunler WHERE Aciklama = 'HP NOTEBOOK' " şeklinde bir arama yaptığımızı düşünelim.Eğer "Aciklama" ntext bir tanım ise veri tabanında bu sorgu şu hatayı veriyor :

"The data types ntext and varchar are incompatible in the equal to operator."

Çözüm Basit :) arama işlemini "LIKE" ile yapıcaksınız :)
Bu hatayı zaten kolayca çözüp giderebilirsiniz ama gördüğü her hatayı direk google a yazan arkadaşlar için bir kaynak olsun dedim :D

Yeni Sorgu :
SELECT * FROM urunler WHERE Aciklama LIKE 'HP NOTEBOOK'



Umarım faydalı olmuştur.
Yunus Emre Web Developer

Morbi aliquam fringilla nisl. Pellentesque eleifend condimentum tellus, vel vulputate tortor malesuada sit amet. Aliquam vel vestibulum metus. Aenean ut mi aucto.

Performance Counter "Bytes Sent/sec , Bytes Received/sec , Get Requests/sec" counter 'ları 0 değer üretiyor ise


Sorun : Performance Counter ile web service kategorisindeki "Bytes Sent/sec" , "Bytes Received/sec" , "Get Requests/sec" Counter isimlerinin değerleri alınmak istendiğinde 0 değer üretiyor ise..

Çözüm : Bu değerler ilk istendiğinde 0 değer üretebiliyor.Bunu bir döngüyle yaklaşık 10 kez çağırmayı denerseniz ve tabi bu döngüde çağırmadan önce System.Threading.Thread.Sleep(2) değerini de vermeyi unutmayalım çünkü yapılan istek normal bir for döngüsünde aynı anda yapılmış gibi oluyor.En azından araya 1-2 mili saniye bekleme koyarsak isteği farklı zamanlarda yapmış oluyoruz.
Örnek Kod :
PerformanceCounter perCounter = new PerformanceCounter("Web Service", "Bytes Sent/sec", "_Total");
float nextValue=perCounter.NextValue();
if(nextValue<1) i =" 0;"> 0)//Eğer deneme sonucunda değer alınmışsa döngüye son veriliyor
break;
//2 milisaniye bekleme
System.Threading.Thread.Sleep(2);
//Bytes Sent/sec ,değeri alınıyor.
nextValue = perCounter.NextValue();

}//End Foreach

}//End If

Umarım faydalı olmuştur.:)
Yunus Emre Web Developer

Morbi aliquam fringilla nisl. Pellentesque eleifend condimentum tellus, vel vulputate tortor malesuada sit amet. Aliquam vel vestibulum metus. Aenean ut mi aucto.

6 Kasım 2010 Cumartesi

app.config içerisinden appSettings ayarı ve web.config içerisinden connectionString Getirme


app.config içerisinden appsettings ayarı getirme .

public static string GetSetting(string settingKey)
{
string settingValue = string.Empty;

if (ConfigurationSettings.AppSettings[settingKey] != null)
settingValue = ConfigurationSettings.AppSettings[settingKey]; //appsettings ayarını getiren satır
return settingValue;

}//End Method

Connection String Getirme :

public static string GetConnectionString(string connStringName)
{
string connectionString = ConfigurationManager.ConnectionStrings["connStringName"].ConnectionString;

return connectionString ;

}//End Method

size direk metod şeklinde yazdım umarım faydalı olur:)
Yunus Emre Web Developer

Morbi aliquam fringilla nisl. Pellentesque eleifend condimentum tellus, vel vulputate tortor malesuada sit amet. Aliquam vel vestibulum metus. Aenean ut mi aucto.