Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > .NET Frameworks (точка нет фреймворки) > C# (си шарп)
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 19.11.2013, 14:24   #1
MasterK
Пользователь
 
Регистрация: 27.08.2009
Сообщений: 28
По умолчанию Неправильная кодировка при добавление в БД

Здравствуйте.
Уже несколько часов пытаюсь решить проблему - при добавлении в бд mysql вместо русских символов добавляются вопросики. сначала подумал что дело в исходных данных, но когда попытался добавить строку "набранную ручками", то понял что проблема не в этом.
Пытался даже вначале выполнить такие команды
"SET NAMES utf8"
"SET COLLATION_CONNECTION=utf8_general_c i"
Да для связи использую mysql connector.

Помогите пожалуйста с проблемой.

Код:
MySqlConnection MysqlConn()
           {
               string connSting = "Database=fixplat;Data Source=localhost;User Id=root;Password=";
               MySqlConnection conn = new MySqlConnection(connSting);
               try
               {
                   conn.Open();
               }
              catch
              {
               MessageBox.Show("Ошибка соединения с БД");
              }
              return conn;

           }
 MySqlCommand ms = new MySqlCommand();
                ms.Connection = MysqlConn();
                ms.CommandText = "SET NAMES utf8";
                ms.ExecuteNonQuery();
                ms.CommandText = "SET COLLATION_CONNECTION=utf8_general_ci";
                ms.ExecuteNonQuery();

 ms.CommandText = 
              "INSERT INTO `Klader` (`Name`, `SOCR`, `Code`, `Index`, `GniNMB`, `OCATD`, `Status`)" +
                        " VALUES ('тест','тест','тест','тест','тест','тест','тест')";
              ms.ExecuteNonQuery();
Нашел решение
строку подключения нужно сделать такой
Код:
"Database=fixplat1;Data Source=localhost;User Id=root;Password=;charset=utf8;"

Последний раз редактировалось MasterK; 19.11.2013 в 19:54. Причина: Найдено решение
MasterK вне форума Ответить с цитированием
Старый 05.12.2013, 15:34   #2
sanela
Пользователь
 
Регистрация: 07.12.2009
Сообщений: 19
По умолчанию

Этo проблема кодировок, когда текст в кодировке UTF-8 читаешь кодировкой ASCII. Тебе нужно в БД текст читать кодировкой UTF-8 или любой другой с корректным чтением русских символов вместо ASCII. Или измени в БД кодировку по умолчание на UTF-8, но в последствии это закрепится для всей БД, что может быть не очень хорошо...

Еще есть способы определения кодировки... Ну это довольно нагруженно будет если будешь при каждом некорректном отображении определять и заменять кодировку.

Последний раз редактировалось sanela; 05.12.2013 в 16:25.
sanela вне форума Ответить с цитированием
Старый 09.12.2013, 08:52   #3
muradov
Пользователь
 
Регистрация: 05.05.2012
Сообщений: 39
По умолчанию

Чем UTF-8 в базе может быть не очень хорошо?
muradov вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Неправильная кодировка в DBEdit (Lazarus) Kerby666 Lazarus, Free Pascal, CodeTyphon 7 06.08.2013 08:15
Кодировка при шифровании PwnOwned C# (си шарп) 0 24.06.2013 17:57
Неправильная кодировка в теме E-Mail POPOV Общие вопросы Delphi 2 07.09.2012 21:12
неправильная работа при инициализации переменной }|{opa KopHeB Помощь студентам 0 02.02.2011 04:32
Неправильная кодировка при пост запросе RIO Работа с сетью в Delphi 1 14.11.2010 07:02