select *from urunler where musteri like %ir%;
Testdaten:türkische Charakter in SQLite während LIKE-Ausdruck mit
+---musteri---+---ID--+
+-------------+-------+
+---İrem------+---1---+
+---Kadir-----+---2---+
+---Demir-----+---3---+
Rückkehr Ergebnis:
Kadir
Demir
, wenn die Verwendung %İr%
dann İrem Rückkehr aber Kadir und Demir nicht zurück. Es gibt dasselbe Problem bei anderen türkischen Charakteren, aber keine genaue Lösung. Ich programmiere Mono Android.
[SQLiteFunction(Name = "TOUPPER", Arguments = 1, FuncType = FunctionType.Scalar)]
public class TOUPPER: SQLiteFunction
{
public override object Invoke(object[] args)
{
return args[0].ToString().ToUpper();
}
}
[SQLiteFunction(Name = "COLLATION_CASE_INSENSITIVE", FuncType = FunctionType.Collation)]
class CollationCaseInsensitive : SQLiteFunction {
public override int Compare(string param1, string param2) {
return String.Compare(param1, param2, true);
}
}
TOUPPER.RegisterFunction(typeof(TOUPPER));
auf diese Weise gelöst, sondern auch C# mono ‚die Bibliothek verwenden, ist hier, wie ich Android.Database.Sqlite.SQLiteDatabase tun müssen, um
vielleicht können Sie verwenden: http://stackoverflow.com/questions/3480999/using-collate-in-android-sqlite-locales- is-ignored-in-like-Anweisung – zapl