14.1.12

ASP.NET Gridviev'de Tarih Format Hatası

ASP.NET ve SQL'de herhalde en sık yaşanan problem tarih formatı uyuşmazlığı problemidir.

ASP.NET'de veri tabanından aldığınız tarihi Gridwiev'e bastığınızda Amerikan formatı ile karşılaşıyorsanız ve büyük bir projede çalışıyorsanız (yani projedeki diğer sayfaları etkileme riskine girmeden sayfa içerisinde problemi çözmek istiyorsanız) aşağıdaki yöntemi kullanabilirsiniz. İnternette daha verimli bir yöntem var mı bilemiyorum ama aşağıdaki yöntem basit ve iş görüyor.

(Not: Ben bu problemi çözmek için başta DataFormatString'i denedimse de bu yöntemden sonuç alamadım, bilginize.)

Veri tabanından gridwiev'e basacağımızı tabloyu çektik ve dt isimli DataTable'a attığımızı farz edelim. dt'de hemen yeni bir alan oluşturuyoruz(il satır). Bende bu alanın ismi bosalma_tarihi_turk. Daha sonra veritabanından gelen tarihi "tarih" isimli string değişkenimize atıyoruz. Bu değişkende ay bölümü ile gün bölümünün yerlerini değiştiriyoruz. Daha sonra formatladığımız string'imizi bosalma_tarihi_turk alanına geri atıyoruz. Bu işlemin sonunda datatable'ımızda Amerikan formatındaki pozisyonun_bosalma_tarihi alanımız ve Türk formatındaki bosalma_tarihi_turk alanımız olmuş oluyor. Dilediğinizi kullanabilirsiniz. Örneğin ekrana basarken Türk formatı ile basıp veri tabanına tarihi göndermeniz gerektiğinde de doğrudan Amerikan formatı olarak gönderebilirsiniz.


        dt.Columns.Add("bosalma_tarihi_turk");

        foreach (DataRow dr in dt.Rows)
        {
            string tarih = dr["pozisyonun_bosalma_tarihi"].ToString();
            tarih = tarih.Substring(3, 2) + "." + tarih.Substring(0, 2) + "." + tarih.Substring(6, 4);
            dr["bosalma_tarihi_turk"] = tarih;
         }

        gridview_bospozisyondoldurmasuresitakibi_tablo.DataSource = dt;
        gridview_bospozisyondoldurmasuresitakibi_tablo.DataBind();


İyi çalışmalar..

Hiç yorum yok:

Yorum Gönder

Related Posts Plugin for WordPress, Blogger...