Proper Case (VB.NET, C#, T-SQL)

Kullanıcı tarafından veritabanına girilmek üzere olan bilgileri, standart bir formatta düzenlemek verilerin hem doğru raporlanmasını sağlar hem de okunabilirliğini artırır. Bu bilgiler arasında genellikle tarih, para, ad soyad ve adres gibi bilgileri bulunmaktadır. Bu yazıda veritabanına girilmiş veya girilecek “ad soyad” bilgilerinin Proper Case formatına nasıl dönüştürüleceğine dair fonksiyonları vereceğiz. ProperCase olarak tanınlanan format, her kelimenin ilk harfinin büyük diğer harflerin küçük yazılmasıdır. Örneğin kullanıcının yazdığı “ahMEt kaYMAZ” şeklindeki veriyi “Ahmet Kaymaz” olarak dönüştürmektir. Bu dönüştürmeyi C#, VB.NET ve SQL tarafında birçok farklı şekilde yapabiliriz.
Eski VB sürümlerinden bildiğimiz StrConv() fonksiyonu, bu işi tek satırda yapabilmektedir. Bu fonksiyon, hangi string değeri ne tür bir formata çevireceğine dair iki parametre alır. İkinci parametre Microsoft.VisualBasic.VbStrConv enumeration’a ait seçenekleri alır.

Dim AdSoyad As String = "ahMEt kAYMAZ"
Dim UCaseAdSoyad As String = StrConv(AdSoyad, VbStrConv.ProperCase)
Console.WriteLine(UCaseAdSoyad)'Ahmet Kaymaz

C# tarafında Microsoft.VisualBasic.dll kütüphanesini kullanarak aynı StrConv() metodunu kullanabiliriz.
Buna alternatif olarak C# ve VB.NET tarafında System.Globalization.TextInfo sınıfı kullanılarak ta bu işlem yapılabilir.

Imports System.Globalization
Imports System.Threading

Module Module1
    Sub Main()
        Dim AdSoyad As String = "ahMEt kAYMAZ"
        Dim cultureInfo As CultureInfo = Thread.CurrentThread.CurrentCulture
        Dim textInfo As TextInfo = cultureInfo.TextInfo

        Dim UCaseAdSoyad As String = textInfo.ToTitleCase(AdSoyad)
        Console.WriteLine(UCaseAdSoyad)
    End Sub
End Module
using System.Globalization;
using System.Threading;

class Program
{
    static void Main()
    {
        string AdSoyad = "ahMEt kAYMAZ";
        CultureInfo cultureInfo   = Thread.CurrentThread.CurrentCulture;
        TextInfo textInfo = cultureInfo.TextInfo;

        string UCaseAdSoyad = textInfo.ToTitleCase(AdSoyad);
        Console.WriteLine(UCaseAdSoyad);
    }//Main
}//Program

Bu işlemi doğrudan SQL Server üzerinde yapmak için Internet’te birçok farklı fonksiyon bulunmaktadır. Bunlar içerisinde benim tercih ettiğim ve kullandığım fonksiyon da şudur;
CREATE FUNCTION ProperCase(@Message varchar(100))
returns varchar(100) as
BEGIN
–Mesajı küçük harfe çevir
SET @Message = LOWER(@Message)

DECLARE @i int
SET @i = ascii(‘a’)

WHILE @i

Proper Case (VB.NET, C#, T-SQL)” üzerine bir düşünce

  1. Erdal Sert

    ilk harfler Türkçe karakterler ise, o harfi büyütemiyor.
    Örnek:ahmet öZKay -> Ahmet özkay olarak dönüyor

    Cevapla
  2. Ahmet Kaymaz Yazar

    Erdal bey,.NET ile birlikte uygulamalarımıza özel yerelleştirme (localization) yapabilmekteyiz. Bu yazıdaki fonksiyon, uygulamanızda aktif olan yerel bilgilerinize bağlı olarak işlem görür. C#’taki kodunuzu aşağıdaki gibi düzenleyip deneyebilir misiniz.CultureInfo cultureInfo = new CultureInfo("tr-TR");
    TextInfo textInfo = cultureInfo.TextInfo;
    string UCaseAdSoyad = textInfo.ToTitleCase("isTANbul");

    Cevapla

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Time limit is exhausted. Please reload CAPTCHA.