Easy Db Tool ile veritabanı işlemlerini kolayca halledin.

Epey bir zaman kullandığım veritabanı aracımı sizlerle paylaşmak istedim. Bu vesileyle üzerimde büyük emeği ve desteği bulunan sevgili arkadaşım, kardeşim Yunus Emre Çavuşoğlu‘ na teşekkürlerimi sunmak istiyorum.

Bu araçla birlikte;

  1. Açık kaynak olduğu için, istediğiniz gibi şekillendirebilirsiniz.
  2. Veritabanına ekleme, silme ve güncelleme işlemlerini kolaylıkla yapabilirsiniz.
  3. Veritabanında ki bilgileri kolayca DataTable ye kolayca aktarabilirsiniz.
  4. Oluşturduğunuz formdaki eleman isimlerinin veritabanındaki isimlerle aynı olması şartıyla bir kerede formdaki tüm bilgileri ekleyebilir veya güncelleyebilirsiniz. (* alan adlarının başına 3 karakterli kontrollerin kısaltılmış ön ekinin girilmesi gereklidir. Örneğin; txtsoyadi, ddlsehir, rblcinsiyet gibi..)
  5. Veritabanında ki bilgileri DataTable ye aktarırken bilgiyi önbellekte (cache) tutma ve bu belleği basit bir şekilde yönetme.

Kullanımı, öncelikle veritabanında ki tablomuza karşılık gelen bir sınıf yazıyoruz. Bu sınıfta id alanını belirtmiyoruz , zamanında böyle yapmışım böyle kalmış :)

    // Poco Class
    public class testTable
    {
        public string name { get; set; }
        public string email { get; set; }
        public DateTime? createDate { get; set; }
        public int? age { get; set; }
    }

Normal ekleme işlemi

            testTable tt = new testTable
            {
                name = "test",
                email = "mail@mail.com",
                age = 18,
                createDate = DateTime.Now
            };

            db.Insert(tt, true);

Formda ki bilgileri ekleme işlemi;

<div runat="server" id="divForm">
 name <asp:TextBox runat="server" ID="txtname" /> <br />
 email <asp:TextBox runat="server" ID="txtemail" /> <br />
 age <asp:TextBox runat="server" ID="txtage" /> <br />
 <asp:Button Text="Add" runat="server" ID="add" onclick="add_Click" />
</div>
db.Insert(new testTable(),divForm,false);

Örneklerde ki true, false olarak ifade ettiğimiz değer, eklenilen kaydın id sinin geriye integer olarak dönüp dönmeyeceğini ifade ediyor. Diğer örnekler ve EasyDbTool için gitHub sayfasını ziyaret edebilirsiniz https://github.com/apoStyLEE/easy-Db-Tools

WordPress’ e geçiş maceram

apostylee.com un eski halini yıllar önce klasik asp ile kodlamıştım. Yıllardır işimi problemsiz görüyordu fakat son zamanlarda ki gelişmelerden dolayı artık yollarımızın ayrılma zamanı geldi ve WordPress e geçtim. Neydi bu gelişmeler ?

  • En önemlisi apostylee.com un ilkel ötesi yönetici panelinden içerik girmek tek kelimeyle eziyetti ve çoğu zaman yazacağım şeyleri yazmıyordum. Açıkcası paneli elden geçirmek de işime gelmiyordu.
  • Tasarımdan kaynaklı ciddi problemlerim vardı, en basitinden friendfeed yada facebook aracının yerleşiminde sıkıntı yaşıyordum. Tasarımımı çok severek yapmıştım ama zamanında bu tarz durumları hesaba katmadığımdan dolayı yerleşimlerde çok ciddi sıkıntılar yaşıyordum. Onu oraya çek bunu buraya çek, zaten zamanım yok iyice bunalmıştım, yeniden tasarlamak da yine işime gelmiyordu :S
  • Arama motoru optimizasyonu ve diğer kolaylıklar için, özellikle eklenti desteği ve tema desteği..
  • Harekette bereket vardır inancımdan dolayı.
  • Yukarıda saydıklarım işin teferruat kısmı olarak nitelendirilebilir, asıl amacım WordPress gibi bir sisemi öğrenebilmek, fırsatını bulmuşken ucundan az da olsa php ile tanışmak.

Madem durum böyle bende tamam apocum geçelim wp ye dedim, fakat ortada ciddi bir sıkıntı vardı. Bu da verilerin taşınmasıydı. Eski sistemde 2 tane tablom vardı ve veriler kendi düzenimde kayıtlıydılar. Koyuldum araştırmaya ama geçişle ilgili hiç bir şey bulamadım. Dedim ki asp.net de bir kod yazayım wp nin istediği xml çıktısını oluşturup, vereyim wp ye olsun bitsin. Koyuldum kod yazmaya baktım ki yazmakla bitecek gibi değil bıraktım :D Aklıma EMS firmasının SQL Manager for MySQL programı geldi, uzun zamandır aynı programın mssql için olanını zaten kullanıyordum. Yeni bir paragraf zamanı :) Okumaya devam et WordPress’ e geçiş maceram

MSSQL Tarih Saat Problemi ve Çözümü

Arkadaş işin içine tarih saat girince heryer karışıyor. Belki sadece bana oluyordur ama araştırdığım kadarıyla bu sıkıntıları herkes yaşıyor. Sıkıntıların başında tarihleri karşılaştıramama geliyor. Özellikle 29.01.2009 15:38:39 şeklindeki tarih saat formatındaki verilerde sürekli problem oluşuyor.

Veritabanındaki DateTime veri türündeki bir alana örneğin; DateTime.Now.ToString(“MM.dd.yyyy hh:mm:ss”) şeklinde verileri girdiğimizde, bu formattaki farklı bir tarihle karşılaştırma yapmak istediğimizde sıkıntı çıkıyor. Örnek sql sorgusu Select * from Tablo_Adi Where DateTime_Alan_Adi > ‘”+DateTime.Now.ToString(“MM.dd.yyyy hh:mm:ss”)+”‘ mantıken problem olmaması gerekiyor çünki yazdığımız verileri karşılaştırıyoruz, ama gelin görünki sapıtan bir sorgu.

Çözüm kısmında karşımıza sql in getDate() fonksiyonu çıkıyor.

Öncelikle MSSQL için Date Time fonksyionlarının burada anlatıldığını belirteyim.

İzleyeceğimiz yol gayet basit. Veritabanı işlemlerinde kullanacağımız tüm tarih işlemlerini getDate() ile yapacağız.

Örnek;
Insert into Tablo_Adi (alan_adi) Values (getDate()) — bu şekilde eklediğimiz bir bilgiyi şu şekilde çok sağlıklı bir şekilde karşılaştırabiliriz.

Select * From Tablo_Adi Where alan_adi > getDate() — gördüğünüz gibi değişkenler veya programlama dilimizin tarih saat fonksiyonlarını bir kenara koyup bu işler için sql in kendisini kullanıyoruz. Esasında en mantıklısıda bu, neden bu zaman kadar bunu düşünemedim bilmiyorum. Aklıma gelmişken yukarıda verdiğim Date Time fonksiyonlarını incelerseniz tarih işlemleri için hertürlü dönüşümü yapabilirsiniz.

Örnek;
getDate()
bize böyle bir çıktı veriyor = 29.01.2009 15:00:00
DATEADD(day, 10,getDate())
dediğimizde gün sayısına 10 ekliyoruz, eğer day yerine hh yazsaydık saati 10 saat ileri alacaktık = 02.02.2009 15:00:00
DATEPART(yy,getDate())
şeklinde sadece yılı alırız = 2009

Aşağıdaki tabloda yukarıdaki örneklerdeki kısaltmaların açıklamaları bulunuyor.

Açıklama Kısaltmalar
Yıl yy, yyyy
Çeyrek qq, q
Ay mm, m
Yılın Günü dy, y
Gün dd, d
Hafta wk, ww
Haftanın Günü dw
Saat hh
Dakika mi, n
Saniye ss, s
Milisaniye ms