26 Kasım 2013 Salı

MSSQL DATEDIFF Fonksiyonu


select datediff(yy,'1982-11-08','2013-10-24') as Yıl
select datediff(mm,'1982-11-08','2013-10-24') as Ay
select datediff(dd,'1982-11-08','2013-10-24') as Gün
select datediff(hh,'1982-11-08','2013-10-24') as Saat
select datediff(mi,'1982-11-08','2013-10-24') as Dakika

 
 
 
DateDiff fonksiyonu verilen 2 tarih arasında ki datepart parametresi farkını verir. Mesela 2 tarih arasında ki ay veya yıl farkını bulmak için kullanabiliriz. Kullanımı şu şekildedir;
DATEDIFF ( datepart , startdate , enddate ) 
  • datepart – Farkı alınacak kısım
  • startdate – Birinci Tarih
  • enddate – İkinci Tarih
Parametreleri ve kullanımları şu şekildedir; @t1 01.01.2009, @t2 '23.07.2011' olsun.
Parametre Açıklama Kullanım Sonuç
yy veya yyyy Yıl farkını almak için kullanılır. select datediff(yy,@t1,@t2) 2
qq veya q Çeyrek farkını almak için kullanılır. select datediff(qq,@t1,@t2) 10
mm veya m Ay farkını almak için kullanılır. select datediff(mm,@t1,@t2) 30
dy veya y Yılın günü farkını almak için kullanılır. select datediff(dy,@t1,@t2) 933
dd veya d Gün farkını almak için kullanılır. select datediff(dd,@t1,@t2) 933
wk veya ww Hafta farkını almak için kullanılır. Yukarıdakiler gibi  
dw Haftanın günü farkını almak için kullanılır. Yukarıdakiler gibi  
hh Saat farkını almak için kullanılır. Yukarıdakiler gibi  
mi veya n Dakika farkını almak için kullanılır. Yukarıdakiler gibi  
ss veya s Saniye farkını almak için kullanılır. Yukarıdakiler gibi  
ms Milisaniye farkını almak için kullanılır. Yukarıdakiler gibi  

5 Eylül 2013 Perşembe

C# Bir Uygulamanın İkinciye Çalıştırılmasını Engellemek

Hazırlamış olduğumuz bir uygulamanın açık durumdayken tekrar çalıştırılabilmesini engellemek için aşağıdaki kodu uygulayabiliriz.

Projenizin içindeki Program.cs dosyasında bulunan "Main Metod" üzerinde aşağıdaki değişikliği yaparak istediğinizi gerçekleştirebilirsiniz.

static void Main()
        {
   if (System.Diagnostics.Process.GetProcessesByName("Proje Adını Yazın").Length > 1)
            {
                MessageBox.Show("Çalıştırmak istediğiniz program zaten açık durumda !!");
                Application.Exit();
            }
            else
            {
                Application.EnableVisualStyles();
                Application.SetCompatibleTextRenderingDefault(false);
                Application.Run(new Form1());
            }
           
        }

Yukarıda "Proje Adını Yazın"  kısmı yerine siz projenizi oluştururken verdiğiniz ismi yazmanız yeterli olacaktır.Daha sonrada Projenizin bulunduğu klasörü içindeki bin\debug kalasöründeki uygulamanıza ait .exe dosyanızı açıp sonra yine ikinci kez açmayı deneyerek test edebilirsiniz.

26 Nisan 2013 Cuma

MSSQL Kayıt varsa UPDATE yoksa INSERT yapmak‏

Bu işlem için 2 yöntem izlenebilir. Bu yöntemlere bir gözatalım.

Yöntem 1-)

string sorgu = @"UPDATE Tablo1 SET Kolon1 = @Kolon1_Degeri WHERE ID = @ID
IF @@ROWCOUNT = 0
BEGIN
INSERT INTO Tablo1 (Kolon1) VALUES (@Kolon1_Degeri)
END";

Burada öncelikle update işlemi gerçekleşiyor.ROWCOUNT = 0 ise demekki güncellenecek kayıt yok o zamanda yeni kayıt işlemi gerçekleşiyor..






Açıklama :
Burada öncelikle update işlemi gerçekleşiyor.ROWCOUNT = 0 ise demekki güncellenecek kayıt yok o zamanda yeni kayıt işlemi gerçekleşiyor..



Yöntem 2-)

string sorgu = @" IF EXISTS(SELECT ID FROM Tablo1 WHERE ID = @ID)
BEGIN
UPDATE Tablo1 SET Kolon1= @Kolon1_Degeri WHERE ID = @ID
END
ELSE
BEGIN
INSERT INTO Tablo1 (ID, Kolon1) VALUES (@ID, @Kolon1_Degeri)
END";


Açıklama:
Bu Yöntemde ise öncelikle kaydın var olup olmadığı belirleniyor.Kayıt varsa Güncelleme Yoksa Ekleme yapıyor.


Örnek SQL Cümle : (Yöntem 2 ye göre düzenlenmiştir.
 
IF EXISTS(SELECT ID FROM elektrik WHERE ID = 2)
BEGIN
UPDATE elektrik SET T1= '999' WHERE ID = 2
END
ELSE
BEGIN
INSERT INTO elektrik (T1, T2, T3) VALUES (999,999,999)
END
Açıklama: 
Örnek cümlede ID Numara değeri 2 olan satır varmı diye bakıyor, varsa update cümlesi çalışacak yokise insert cümlesi çalışacaktır.

20 Nisan 2013 Cumartesi

MSSQL Identity ve MySQL Auto Increment Reset

Merhabalar,

MSSQL ve MySQL de bir tabloyu delete from table şeklinde sildiğimizde herşey silinir sıfır(0) dan başlar fakat, MSSQL de identity MySQL de Auto Increment değerimiz tabloyu silmeden önceki son değerden devam eder.

Silmiş olduğumuz tabloda identity ve Auto Increment değerinide 1(Bir) den başlatmak istiyorsak aşağıdaki kod ile yapabiliriz.

MSSQL İçin;
DBCC CHECKIDENT (TabloAdı, reseed, 0)



MySQL İçin;
Alter Table `Tabloadi` AUTO_INCREMENT=1 

18 Nisan 2013 Perşembe

JavaScript ile 4 İşlem Örneği

Merhabalar,

Web uygulamalarında toplama,çıkarma,bölme,çarpma işlemlerini Javascript ile nasıl yaparız bunu görelim.

Html form içinde 2 adet tanımlı textbox alana yazılı olan sayısal değerlerle uygulamımızı test edelim.

İlgili Fonksiyon Tanımları;


function topla()
{
 var sayi1 = parseInt(document.getElementById("text1").value);
 var sayi2 = parseInt(document.getElementById("text2").value);
 var toplam=(sayi1)+(sayi2);
 alert(toplam);


}
function cıkar()
{
 var sayi1 = parseInt(document.getElementById("text1").value);
 var sayi2 = parseInt(document.getElementById("text2").value);
 var toplam=sayi1-sayi2;
 alert(toplam); 
}
function bol()

  var sayi1 = parseInt(document.getElementById("text1").value);
 var sayi2 = parseInt(document.getElementById("text2").value);
 var toplam=sayi1/sayi2;
 alert(toplam);
}
function carp()
{ var sayi1 = parseInt(document.getElementById("text1").value);
 var sayi2 = parseInt(document.getElementById("text2").value);
 var toplam=sayi1*sayi2;
 alert(toplam);
}




Untitled Document
sayi1:
sayi2:

C# Saat:Dakika değerini integer değere --- İnteger değeri Saat:Dakika ya çeviren metodlar‏

Merhabalar,

C# da bazı durumlarda saat:dakika değerlerini integer tipine çevirip veritabanına kaydedip, tekrar bu integer değere okuyup saat:dakika ya çevirmemiz gerekebilir.

Bu convert durumlarını aşağıdaki metodlar yardımı ile yapabiliriz.



public string ZamanaCevir(int timeSeconds)
{
int mySeconds = System.Convert.ToInt32(timeSeconds);
int myHours = mySeconds / 3600;
mySeconds %= 3600;
int myMinutes = mySeconds / 60;
mySeconds %= 60;
string mySec = mySeconds.ToString(),
myMin = myMinutes.ToString(),
myHou = myHours.ToString();
if (myHours < 10) { myHou = myHou.Insert(0, "0"); }
if (myMinutes < 10) { myMin = myMin.Insert(0, "0"); }
if (mySeconds < 10) { mySec = mySec.Insert(0, "0"); }
return myHou + ":" + myMin + ":" + mySec;
}



private int SayiyaCevir(string sure)
{
string time = sure;
int[] ssmmhh = { 0, 0, 0 };
var hhmmss = time.Split(':');
var reversed = hhmmss.Reverse();
int i = 0;
reversed.ToList().ForEach(x => ssmmhh[i++] = int.Parse(x));
var seconds = (int)(new TimeSpan(ssmmhh[2], ssmmhh[1], ssmmhh[0])).TotalSeconds;
return seconds;
}

C# İki Array Karşılaştırılması‏

Merhabalar,

Array karşılaştırma ile ilgili .Net in hazır fonksiyonlarından 2 örnek verelim.

string[] sonuc= dizi1.Except(dizi2).ToArray();   
//dizi2'de bulunup dizi1'de bulunmayan elemanları sonuç dizisine aktarır. 
 string[] sonuc= dizi1.Intersect(dizi2).ToArray();  
//dizi1 ve dizi2'de ortak olarak bulunan elemanları sonuç dizisine aktarır.