Модераторы: skyboy
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> DataGridView Не хочет работать ConCAt_WS(), MySQL + C# ..VS2005  
V
    Опции темы
Fyrklod
Дата 27.6.2008, 08:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 141
Регистрация: 17.10.2006

Репутация: 1
Всего: 1



Я уже описывал эту проблему в разделе для .Net, но решил и тут на всякий пожарный.. итак

Работаю я на 2005 студии с мускулом..
возникла проблема следующего характера: к примеру есть в базе 3 поля Fam, Nam Otch соединяю в запросе их в одно поле
Код

select concat_ws(' ', fam, nam, otch) from table;

и вывожу это все в DataGridView.. в результате вижу поле "?????? ???? ?????????" вместо желаемого "Иванов Петр  Сидорович"
Если же я вывожу эти поля по одиночке (3 поля в 3 столбца) то все ок....

Подскажите в чем может быть причина глюка...  



--------------------
Зачем компьютеры пищат, когда нажимаешь сразу много клавиш? Чтобы будить уснувших на клавиатуре программистов!
PM MAIL   Вверх
skyboy
Дата 27.6.2008, 09:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


неОпытный
****


Профиль
Группа: Модератор
Сообщений: 9820
Регистрация: 18.5.2006
Где: Днепропетровск

Репутация: 41
Всего: 260



у тебя, видимо, проблемы кодировок.
в какой кодировке запрос?
в какой кодировке данные в таблице?
какая установлена кодировка для работы?
DataGridView умеет выводить unicode?
там в качестве разделителя ты передаешь-таки пробел или что-то другое?
поясняю: у тебя следующая схема:
строка запроса -> коннектор(ADO.NET или что там у тебя) -> сервер MySQL -> коннектор(ADO.NET или что там у тебя) -> DataGridView
на одном из этих переходов происходит урезание кодировки(подозреваю, что UNICODE урезается до cp1251). 
PM MAIL   Вверх
Fyrklod
Дата 27.6.2008, 09:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 141
Регистрация: 17.10.2006

Репутация: 1
Всего: 1



полностью все у меня на utf8... 
>там в качестве разделителя ты передаешь-таки пробел или что-то другое?
да.. там пробел...

>подозреваю, что UNICODE урезается до cp1251
я тоже это подозреваю... но вот как это безобразие прекратить не пойму... 1000 раз уже юзал этот КОНКАТ... а щас произошел сбой... и так не воремя... 

есть какие-то идеи как избавиться от этой гадости?


--------------------
Зачем компьютеры пищат, когда нажимаешь сразу много клавиш? Чтобы будить уснувших на клавиатуре программистов!
PM MAIL   Вверх
skyboy
Дата 27.6.2008, 09:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


неОпытный
****


Профиль
Группа: Модератор
Сообщений: 9820
Регистрация: 18.5.2006
Где: Днепропетровск

Репутация: 41
Всего: 260



да! я тебе описал цепочку!
надо на каждом этапе проверять состояние принятых данных.
PM MAIL   Вверх
Fyrklod
Дата 27.6.2008, 10:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 141
Регистрация: 17.10.2006

Репутация: 1
Всего: 1



(1) строка запроса -> (2) коннектор(ADO.NET или что там у тебя) -> (3) сервер MySQL -> (4)коннектор(ADO.NET или что там у тебя) -> (5)DataGridView

Если я правильно понимаю, то это так
(1) SQL = String.Format("select concat_ws(' ', pole1, pole2, pole3) from table"); - тут все ок;
(2) MySQLComander cmd = new MySQLComander(SQL, Conector); - так понимаю что тут проверить надо или cmd или Conector
(3) Делал запрос в утилите Browser выдает нормальный результат... так что думаю что на серевере мой запрос нормально обрабатывается
(4) вот тут затруднительно... как эту часть звена проверить?
ну а на (5) мне уже выдает не то....

кстати говоря пробовал результат пихать в обычный комбобокс таже лажа... так что тут явно не в гриде дело... получается точно в (4) звене проблема

Это сообщение отредактировал(а) Fyrklod - 27.6.2008, 10:14
--------------------
Зачем компьютеры пищат, когда нажимаешь сразу много клавиш? Чтобы будить уснувших на клавиатуре программистов!
PM MAIL   Вверх
Fyrklod
Дата 27.6.2008, 11:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 141
Регистрация: 17.10.2006

Репутация: 1
Всего: 1



Все.. данная проблема решена... нашел на одном сайте причину ошибки
оказывается надо писать перед константой в этой функции тип 

Пример
Код

SELECT folder, element, published, CONCAT_WS(_utf8'/',folder,element) ...

--------------------
Зачем компьютеры пищат, когда нажимаешь сразу много клавиш? Чтобы будить уснувших на клавиатуре программистов!
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | MySQL | Следующая тема »


 




[ Время генерации скрипта: 0.0711 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.