CategoryVeritabanı

Mysql’ de Türkçe Sıralama (Türkçe Order By)

M

MySQL veritabanında sorgularımızda ORDER BY ile sıralama yaptığımızda Türkçe karakter içeren kelimelerde sıralama problemi yaşanabiliyor.

[sql]SELECT * FROM uyeler ORDER BY isim[/sql]

şeklinde kullandığımızda ümit isimli bir üyemiz umut isimli bir üyemizden daha önce çıkabiliyor. Bunun çözümü MySQL’ e sorgularımızı utf8_turkish_ci karakter setini dikkate alacak şekilde sorgulatmamız gerekiyor. Bunun için collate komutu kullanıyoruz.

[sql]SELECT * FROM uyeler ORDER BY isim COLLATE utf8_turkish_ci[/sql]

Eğer ASC yada DESC gibi sıralama türünü belirtmek istiyorsak bunu sorgumuzun en sonuna yazmamız gerekiyor.

Asp.Net (C#) ve Mysql Türkçe Karakter Problemi

A

Mysql ile iç içe olmaya başladıkça sorunlar beraberinde geliyor :) Mysql kaynaklımıdır yada genel olarak Csharp’ ın problemi midir bilmiyorum ama “Ş” harfi içeren bir kayıt eklediğimde bunu S harfine çevirmesi beni deli etti. Neyseki sonunda çözümünü buldum. Bağlantı satırımızın (connection string) sonuna charset eklemek yeterli oluyor.

Eğer Latin5 kodlama yapıyorsanız;

charset=latin5;

Eğer utf8 ile kodlama yapıyorsanız;

charset=utf8;

Bunun dışında veritabanınızın karakter setininde önemli rol oynadığını unutmayın. Türkçe karakter problemi yaşamamak için latin5 yada utf8 kullanmak zorundasınız. Şahsi tavsiyem ise standart olarak visual studio nun sayfaları utf8 olarak yaratması nedeniyle utf8_general_ci kullanmanızdır.

Unable to find the requested .Net Framework Data Provider. It may not be installed.

U

Bugün C# ve MySQL ile testlerimi yaparken aşağıdaki sorunla karşılaştım,

Unable to find the requested .Net Framework Data Provider.  It may not be installed.

Sorunun çözümü ararken araştırmalarım sonucu web.config’ e Mysql Provider’ ımızı eklememiz gerektiğini öğrendim. Aşağıdaki kodları web.config dosyasınıza girerseniz sorun ortadan kalkıyor.

[csharp] <system.data>
<DbProviderFactories>
<add name="MySql Data Provider" invariant="MySql.Data.MySqlClient" description=".Net Framework Data Provider for MySql" type="MySql.Data.MySqlClient.MySqlClientFactory, MySql.Data"/>
</DbProviderFactories>
</system.data>
[/csharp]

Bir diğer çözüm olarak sunucunuza yada localde çalıştığınız pc ye www.mysql.com üzerinden MySQL .Net Connector kurarak sorunu kökünden çözebilirsiniz, ilgili hata providerın olmamasından kaynaklanıyor.

Get in touch

Quickly communicate covalent niche markets for maintainable sources. Collaboratively harness resource sucking experiences whereas cost effective meta-services.