![]() |
|
| |||||||
|
| WebMasTer SiTeSi |
| | Seçenekler |
|
#1
| |||
| | |||
SQL'de Tarih KullanmakÖ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> /// Summary description for Fonksiyonlar. /// </summary> public class Fonksiyonlar { public static OleDbConnection Baglanti() { stringProvider="";Provider="Provider=Microsoft.Jet .OLEDB.4.0;DataSource= C:\\Database\\BELOTOM.mdb";</P> < 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> /// Summary description for Deneme. /// </summary> // 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 4 orgula 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 . |
![]() |
| Arama Etiketleri: kullanmak, sqlde, tarih |
| Seçenekler | |
| |
Benzer Konular | ||||
| Konu | Konu Açanlar | Forum | Cevaplar | Güncel Mesajlar |
| Domaini bloggerda kullanmak | SveS | Soru-Cevap | 3 | 15-09-2008 04:02 |
| Delphi'de Interface Hazırlamak ve Kullanmak | miguel | Delphi | 0 | 04-02-2008 04:37 |
| Frame Kullanmak | egitimbilgisi | Yeni Başlayanlara WebmasterSitesi | 2 | 02-01-2008 06:21 |
| Interbase i MultiUser Kullanmak | Celebrian | Delphi | 0 | 24-12-2007 02:02 |
| frame kullanmak | W-S | Html | 0 | 02-11-2007 01:29 |
![]() |