Knight Online Private Serverlar
Knight Online Private Serverlar

Knight Online Private Serverlar Hakkındaki Tüm Paylaşımlar.
 
AnasayfaTakvimSSSAramaÜye ListesiKullanıcı GruplarıKayıt OlGiriş yap

Paylaş | 
 

 SQL'DE Tarih Kullanmak

Aşağa gitmek 
YazarMesaj
Corleone
Administrator
Administrator
avatar

Tuttuğu Takım : Beşiktaşlı
Ruh Hâli : Neşeli
Mesaj Sayısı : 1541
Kullanıcı Puanı : 35001
Saygınlık : 10381
+500 Repliler
Üyelik Tarihi : 24/07/09
Yaş : 23
Şubesi : Ä°stanbul

MesajKonu: SQL'DE Tarih Kullanmak   Çarş. Ağus. 12, 2009 5:46 pm

Öncelikle kullanıcı arayüzünden veritabanına gönderilmesini inceleyelim. Access , MS SQL Server yada Oracle databasezlerinde tablomuzu oluşturalım.Tablomuz aşağıdaki alanlarda oluşsun.

ID integer,

ADI varchar(50)

DOGUM_TARIHI

Veri tabanı bağlantısını sağlamak için Baglatı fonksiyonunu oluşturalım.

public static OleDbConnection Baglanti(){

stringProvider="Provider=Microsoft.Jet.OLEDB.4.0;D ata Source=C:\\Database\\deneme.mdb";

//Provider="Provider=SQLOLEDB;data source=localhost;initial catalog=deneme;integrated security=sspi";

//Provider="Provider=OraOLEDB.Oracle.1;data source=spatial.deneme.com.tr;User ID=deneme;Password = deneme";

OleDbConnection myConnection = new OleDbConnection();

myConnection.ConnectionString = Provider;

if(myConnection.State == ConnectionState.Closed || myConnection == null)

myConnection.Open(); return myConnection;

}




Kodl 1: Veri tabanı bağlantıs

Veri tabanları için oluşturduğumuz tarih fonksiyonlarını oluşturalım.Kullanacağınız veritabanına göre hangisini çağırmak istediğinize kod içerisinde karar verebilirsiniz.

//Oracle için kullanabileceğiniz Fonksiyon
public static string DateTime_forOracle(DateTime value)
{
if(value==Convert.ToDateTime("01.01.0001"))
return "NULL";
else
return "TO_DATE(’" + Convert.ToDateTime(value).ToString("dd-MM-yyyy") + "’,’dd.mm.yyyy’)";

}

//Microsoft SQL Server için Fonksiyon
public static string DateTime_forSQLServer(DateTime value)
{
if(value==Convert.ToDateTime("01.01.0001"))
return "NULL";
else
//smalldatetime tipi kullanıma göre değiştirilebilir
return "Convert(smalldatetime,’" + Convert.ToDateTime(value).ToString("MM-dd-yyyy") + "’)";

}

//Access için kullanabileceğiniz Fonksiyon
public static string DateTime_forAccess(DateTime value)
{
if(value==Convert.ToDateTime("01.01.0001"))
return "NULL";
else
{
string Time = "";
Time = value.ToString("#MM/dd/yyyy#");
Time = Time.Replace(".","/");
return Time;

}


Kod 2: Fonksiyonlar
Yukarıda yazdığımız fonksiyonları bir sınıfta birleştirirsek bir nevi kendi kutuphanemizi oluşturmuş oluruz.

using System;
using System.Data;
using System.Data.OleDb;

namespace TarihDonusturme
{
///
/// Summary description for Fonksiyonlar.
///

public class Fonksiyonlar
{

public static OleDbConnection Baglanti()
{

stringProvider="";Provider="Provider=Microsoft.Jet .OLEDB.4.0;DataSource= C:\\Database\\BELOTOM.mdb";

< Palign=left> < /FONT>

//Provider="Provider=SQLOLEDB;data source=localhost;initial catalog=deneme;integrated security=sspi";
//Provider="Provider=OraOLEDB.Oracle.1;data source=spatial.borat.com.tr;User ID=belotom;Password = belotom";

OleDbConnection myConnection = new OleDbConnection();
myConnection.ConnectionString = Provider;
if(myConnection.State == ConnectionState.Closed || myConnection == null)
myConnection.Open();

return myConnection;

}

//Oracle için kullanabileceğiniz Fonksiyon
public static string DateTime_forOracle(DateTime value)
{
if(value==Convert.ToDateTime("01.01.0001"))
return "NULL";
else
return "TO_DATE(’" + Convert.ToDateTime(value).ToString("dd-MM-yyyy") + "’,’dd.mm.yyyy’)";

}

//Access için kullanabileceğiniz Fonksiyon
public static string DateTime_forAccess(DateTime value)
{
if(value==Convert.ToDateTime("01.01.0001"))
return "NULL";
else
{
string Time = "";
Time = value.ToString("#MM/dd/yyyy#");
Time = Time.Replace(".","/");
return Time;

}

}

//Microsoft SQL Server için Fonksiyon
public static string DateTime_forSQLServer(DateTime value)
{
if(value==Convert.ToDateTime("01.01.0001"))
return "NULL";
else//smalldatetime tipi kullanıma göre değiştirilebilir

return "Convert(smalldatetime,’" + Convert.ToDateTime(value).ToString("MM-dd-yyyy") + "’)";

}
}
}


Kod 2: Fonksiyonların birleştirilmesi

Sorgulama yapabileceğimiz örnek bir sınıf (class) oluşturalım.Deneme sınıfında private değişkenler, public değişkenler, yapıcılar ve tarih fonksiyonunu gibi kullanacağımız fonksiyonlar yer almakta.

using System;
using System.Data;
using System.Data.OleDb;

namespace TarihDonusturme
{
///
/// Summary description for Deneme.
///

// Deneme Classı
public class DENEME
{
// private değişkenlerimiz
private System.Int32 _ID;
private System.String _ADI;
private System.DateTime _DOGUM_TARIHI;

// public değişkenlerimiz
public System.Int32 ID
{
get{return _ID;}
}

public System.String ADI
{
get{return _ADI.Trim();}
set{_ADI= value;}
}

public System.DateTime DOGUM_TARIHI
{
get{return _DOGUM_TARIHI;}
set{_DOGUM_TARIHI= value;}
}

// Yapıcılarımız(constructors)
public DENEME()
{
Yeni();
}

// Private fonksiyonlar

private void Yeni() {
_ID = 0;
_ADI = "";
_DOGUM_TARIHI = Convert.ToDateTime("01.01.0001");}

public static DENEME[] TarihSorgula( System.DateTime Ilk_Tarih , System.DateTime SonTarih)
{
//Kullanacağımız database göre tarih fonksiyonunu değiştiebiliriz
string SQL = "SELECT * FROM DENEME WHERE DOGUM_TARIHI >="+Fonksiyonlar.DateTime_forAccess(Ilk_Tarih) +" AND DOGUM_TARIHI<="+Fonksiyonlar.DateTime_forAccess(So nTarih);

System.Data.OleDb.OleDbDataAdapter _Adapter=new System.Data.OleDb.OleDbDataAdapter();
_Adapter.SelectCommand=new System.Data.OleDb.OleDbCommand(SQL);
_Adapter.SelectCommand.Connection=Fonksiyonlar.Bag lanti();

System.Data.DataTable _Table=new System.Data.DataTable();
_Adapter.Fill(_Table);

DENEME[] _Deneme = new DENEME[_Table.Rows.Count];
for(int i =0 ; i <_Table.Rows.Count ;i++)
{
_Deneme[i] = new DENEME();
_Deneme[i]._ID = Convert.ToInt32(_Table.Rows[i]["ID"]);
_Deneme[i]._ADI = Convert.ToString(_Table.Rows[i]["ADI"]);
_Deneme[i]._DOGUM_TARIHI = Convert.ToDateTime(_Table.Rows[i]["DOGUM_TARIHI"]);
}
return _Deneme;

}

}

}

Kod 3: Deneme adlı sınıf üzerinde SQL cümlesi ve tarih fonksiyonunu kullanılması
Son olarak ta yapmış olduğumuz fonksiyonların çalışması için örnek bir form oluşturalım.





private void button1_Click(object sender, System.EventArgs e) {

try {

DENEME[] _TempList ;

_TempList = DENEME.TarihSorgula(Convert.ToDateTime(textBoxIlk_ Tarih.Text),Convert.ToDateTime (textBoxSon_Tarih.Text));

listViewListe.Items.Clear();

ListViewItem _li;

for(int i = 0 ; i < _TempList.Length ;i++)

{

_li = new ListViewItem();

_li.Text = _TempList[i].ID.ToString();

listViewListe.Items.Add(_li);

_li.SubItems.Add(_TempList[i].ADI);

_li.SubItems.Add(_TempList[i].DOGUM_TARIHI.ToString());

}

}

catch(Exception ex) { MessageBox.Show(ex.Message); }

}




Kod 4orgula buttonunun altına yazacağımız kod.

Bu ve buna benzer fonksiyonlar diğer kullanılan veritabanları için de yapılabilir. Böylelikle bizi zaman kaybından ve zorluklardan birazda olsa kurtarmış olur .
Sayfa başına dön Aşağa gitmek
Kullanıcı profilini gör http://k2private.lforum.biz
 
SQL'DE Tarih Kullanmak
Sayfa başına dön 
1 sayfadaki 1 sayfası

Bu forumun müsaadesi var:Bu forumdaki mesajlara cevap veremezsiniz
Knight Online Private Serverlar :: Programlama :: Görsel Programlama-
Buraya geçin: