У меня есть код:
CREATE TABLE IF NOT EXISTS Person
(
name varchar(24) ...
)
CHARACTER SET utf8 COLLATE utf8_polish_ci;
Это нормально работает в моем приложении, но я читаю, если кто-то вставит в поле имени строку, содержащую символ, код которого больше 127, база данных будет использовать 2 байта (или больше) для хранения этого символа. Поэтому я думаю, что я изменю набор символов на utf16:
CHARACTER SET utf16 COLLATE utf16_polish_ci;
Но теперь, когда я запускаю свое приложение, появляется исключение: KeyNotFoundException. Это происходит именно по этим инструкциям:
MySqlCommand komenda = baza.Połączenie.CreateCommand ();
komenda.CommandText = zapytanie;
MySqlDataReader dr = komenda.ExecuteReader (); // HERE, at execute reader method
if (dr.Read ()) ...
1) У кого-нибудь была похожая проблема? 2) Есть идеи, как использовать всегда 2 байта / символ в поле базы данных?